--- Comment #1 from chris at bubblescope dot net 2009-09-14 07:24 ---
In C++0x, this problem will go away, because move constructors will be used,
which leads to the most efficient implementation for both large and small types
(assuming they implement a move constructor at least as effic
PR41343 testcase lead me to look at 3 small testcases showing VTA throwing
debug info on the floor (-gdwarf-4 -O2 in all cases):
int
foo (int i, int j)
{
int i1 = 2 * i;
int i2 = 3 * i;
return j;
}
Above is a problem already during RTL expansion, SSA_NAME i_1 (of PARM_DECL i,
with GIMPLE_NOP
--- Comment #1 from jakub at gcc dot gnu dot org 2009-09-14 08:18 ---
Created an attachment (id=18580)
--> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18580&action=view)
gcc45-pr41353.patch
Here is a small patch that allows us to get at least a little bit toward fixing
the first tes
--- Comment #1 from rwild at gcc dot gnu dot org 2009-09-14 08:49 ---
What would you escape it with, though? GCC cannot know whether you will be
using a make implementation like GNU make that groks backslash escaping of
colons, or a mingw32-make that will try to intelligently interpret
--- Comment #2 from rguenth at gcc dot gnu dot org 2009-09-14 08:50 ---
Mine. Let's see if I find a magic way to reproduce on *-linux.
--
rguenth at gcc dot gnu dot org changed:
What|Removed |Added
-
The GCC in Ubuntu Karmic for ARM uses the vtable of the superclass when
inlining the constructors of several subclasses in the same function. This
happens only when using -fno-strict-aliasing. This can cause the program to
fail with a "pure virtual called" error. The V8 JavaScript engine is one
--- Comment #1 from erik at arbat dot com 2009-09-14 09:00 ---
Created an attachment (id=18581)
--> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18581&action=view)
Test case.
The following file illustrates the bug. Compiling with
g++ -O1 -fno-strict-aliasing -c codegen.cc
to see the
--- Comment #3 from rguenth at gcc dot gnu dot org 2009-09-14 09:01 ---
Testcase, build with -fno-dwarf2-cfi-asm
extern void bar (void);
int foo (void)
{
try {
bar();
} catch (...) {
return 1;
}
return 0;
}
int foobar (void)
{
}
--
http://gcc.gnu.org/bugzilla/show_
--- Comment #2 from jakub at gcc dot gnu dot org 2009-09-14 09:15 ---
Regarding the second testcase, the second i1 note (no real location) comes from
emit_notes_for_changes (insn, EMIT_NOTE_AFTER_INSN, set->vars); in MO_VAL_LOC
handling, the first one (with the correct location) is emitt
--- Comment #2 from paolo dot carlini at oracle dot com 2009-09-14 09:32
---
Indeed, I agree with most of the points Chris is making, in particular I find
extremely important the point about stable_partition. I only want to add that
in principle in this specific case, dispatching to an
--- Comment #4 from rguenth at gcc dot gnu dot org 2009-09-14 09:39 ---
Subject: Bug 41350
Author: rguenth
Date: Mon Sep 14 09:38:55 2009
New Revision: 151681
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=151681
Log:
2009-09-14 Richard Guenther
PR middle-end/41350
--- Comment #5 from rguenth at gcc dot gnu dot org 2009-09-14 09:39 ---
Should be fixed now.
--
rguenth at gcc dot gnu dot org changed:
What|Removed |Added
--- Comment #2 from rguenth at gcc dot gnu dot org 2009-09-14 09:40 ---
The problem in comment #1 should be fixed now (dup of PR41350). Can you check
what build dependencies you have installed to trigger the ICE in the original
description? I certainly cannot reproduce it on my hosts.
--
rguenth at gcc dot gnu dot org changed:
What|Removed |Added
Target Milestone|--- |4.5.0
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41352
--- Comment #1 from rguenth at gcc dot gnu dot org 2009-09-14 10:08 ---
> Comparing stages 2 and 3
> warning: gcc/cc1-checksum.o differs
> warning: gcc/cc1plus-checksum.o differs
that one is expected and doesn't fail the build. What's the output after that?
--
rguenth at gcc dot gn
--
rguenth at gcc dot gnu dot org changed:
What|Removed |Added
Target Milestone|--- |4.5.0
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41349
--
rguenth at gcc dot gnu dot org changed:
What|Removed |Added
Severity|normal |enhancement
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41353
--- Comment #3 from paolo dot carlini at oracle dot com 2009-09-14 10:49
---
I'll double check but apparently both STLport and RogueWave are similar to
v3...
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41351
--- Comment #13 from matz at gcc dot gnu dot org 2009-09-14 12:20 ---
Nah, not the full patch. Maybe the part that gives separate alias sets to
scalar variables. But there's plenty of time for reverting, let's try to
cobble up some other fixes first.
--
http://gcc.gnu.org/bugzilla
--- Comment #1 from rguenth at gcc dot gnu dot org 2009-09-14 12:34 ---
We need to stream cgraph_asm_nodes.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41281
--- Comment #3 from hjl dot tools at gmail dot com 2009-09-14 13:47 ---
Revision 151681 is OK.
--
hjl dot tools at gmail dot com changed:
What|Removed |Added
--- Comment #2 from rguenth at gcc dot gnu dot org 2009-09-14 13:49 ---
I have a patch that fixes -flto at least.
--
rguenth at gcc dot gnu dot org changed:
What|Removed |Added
---
--- Comment #4 from potswa at mac dot com 2009-09-14 16:35 ---
I doubt that stable_partition can't be implemented with std::swap. If I
understand you the problem lies in the temporary_buffer, which is uninitialized
memory and hence un-swappable. One solution would be simply to initialize
--- Comment #9 from jakub at gcc dot gnu dot org 2009-09-14 15:04 ---
Limiting the size of the debug_stmt/debug_insn expression is certainly
desirable, having it unbounded is bad. The question is what to do if the size
grows too much. One possibility is dropping them to the floor, anot
--- Comment #2 from paolo dot carlini at oracle dot com 2009-09-14 15:58
---
Actually, seems easy to fix...
--
paolo dot carlini at oracle dot com changed:
What|Removed |Added
---
--- Comment #10 from rguenth at gcc dot gnu dot org 2009-09-14 16:13
---
The simplest thing may be to disallow extra propagations, like from
D.1234_2 = i0_1 + i0_1;
# DEBUG i1 => D.1234_2
to
# DEBUG i1 => i0 + i0
where dropping from i0_1 to i0 if more propagations would cause ext
--- Comment #2 from meissner at gcc dot gnu dot org 2009-09-14 16:59
---
Subject: Bug 41210
Author: meissner
Date: Mon Sep 14 16:59:12 2009
New Revision: 151691
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=151691
Log:
Fix PR 41210 & 41331 on powerpc
Added:
trunk/gcc/test
--- Comment #5 from chris at bubblescope dot net 2009-09-14 17:00 ---
You cannot assume the elements you are sorting have a default constructor. You
can however certainly use a separate array of indices, and then swap at the
end, so I withdraw that comment. However, this also only compli
--- Comment #3 from paolo at gcc dot gnu dot org 2009-09-14 17:01 ---
Subject: Bug 41037
Author: paolo
Date: Mon Sep 14 17:01:05 2009
New Revision: 151692
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=151692
Log:
2009-09-14 Paolo Carlini
PR libstdc++/41037
*
--- Comment #4 from paolo dot carlini at oracle dot com 2009-09-14 17:04
---
Fixed for 4.5.0.
--
paolo dot carlini at oracle dot com changed:
What|Removed |Added
Testcase, compile at -O2. A clone "g.clone.0" is formed which is the same as
"g", only the second argument has been dropped. The bug is that in the
CALL_EXPR the type of the called function is still the original type.
// begin testcase
static __attribute__((noinline)) int g(int i, int j) {
i
--- Comment #2 from mikpe at it dot uu dot se 2009-09-14 15:01 ---
Incomplete test case, compiling w/o -c results in linkage errors:
codegen.cc:(.text+0x1a): undefined reference to `CodeStub::get_code()'
codegen.cc:(.text+0x30): undefined reference to `CodeStub::get_code()'
codegen.cc:(
--- Comment #3 from jakub at gcc dot gnu dot org 2009-09-14 17:36 ---
Another testcase for the vartrack bug:
int
foo (int i)
{
asm volatile ("" : "+r" (i));
int i1 = 2 * i;
int i2 = 2 * i;
int i3 = 2 * i;
return i;
}
(debug_insn 8 6 9 2 d6.c:4 (var_location:SI i (reg:SI 0 ax [
--- Comment #6 from potswa at mac dot com 2009-09-14 18:00 ---
If the alternative stable_partition is faster, maybe it should be used anyway.
For large blocks, virtual memory allocation time may dominate computation, so
it should certainly be faster sometimes.
Back to rotate, I was just
--- Comment #7 from chris at bubblescope dot net 2009-09-14 18:11 ---
Only a svn copy of stl_algo.h has the rvalue reference stuff for
stable_partition. We use a number of macros, like _GLIBCXX_MOVE, to wrap
various parts of the algorithms, so they work in both c++03 and c++0x.
It is a
--- Comment #5 from geir at cray dot com 2009-09-14 19:59 ---
(In reply to comment #4)
> Geir, have you run the testcase with other compilers? What is the result?
>
Changed test cast to use 2 threads ("omp_set_num_threads(2);")
PGI 9.0-3
$ pgcc -mp bug2883.c
$ ./a.out
pi 3.14
--
rth at gcc dot gnu dot org changed:
What|Removed |Added
AssignedTo|rth at gcc dot gnu dot org |unassigned at gcc dot gnu
|
--
rth at gcc dot gnu dot org changed:
What|Removed |Added
AssignedTo|rth at gcc dot gnu dot org |unassigned at gcc dot gnu
|
--
rth at gcc dot gnu dot org changed:
What|Removed |Added
AssignedTo|unassigned at gcc dot gnu |rth at gcc dot gnu dot org
|dot org
--- Comment #1 from burnus at gcc dot gnu dot org 2009-09-14 21:05 ---
In any case gcc/dwarf2out.c needs to be modified. It currently has:
fortran_common (tree decl, HOST_WIDE_INT *value)
{ [...]
if (TREE_CODE (val_expr) != COMPONENT_REF)
return NULL_TREE;
However, one needs to c
--
paolo dot carlini at oracle dot com changed:
What|Removed |Added
Status|SUSPENDED |NEW
Last reconfirmed|2008-02-25 12:44:30 |2009-09-14 2
--- Comment #8 from potswa at mac dot com 2009-09-14 21:36 ---
Well, if fast is good, maybe you will consider this:
const _Distance __d = __gcd(__n, __k), __r = __n / __d;
for ( _Distance __i = 0; __i < __d; ++ __i ) {
_ValueType __tmp = *__first;
I am trying to compile many jars into one native executable with the following
command:
/usr/local/gcc/gcc-4.3.1-java/bin/gcj -combine -R
/usr/local/gcc/gcc-4.3.1-java/lib --main=com.xxx.MyClass \
/usr/local/share/java/commons-logging-1.1.1.jar \
/usr/local/share/java/avalon-framework-4.2.0.ja
--- Comment #3 from danglin at gcc dot gnu dot org 2009-09-14 22:24 ---
*** Bug 41010 has been marked as a duplicate of this bug. ***
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41009
--- Comment #1 from danglin at gcc dot gnu dot org 2009-09-14 22:24 ---
*** This bug has been marked as a duplicate of 41009 ***
--
danglin at gcc dot gnu dot org changed:
What|Removed |Added
--
--- Comment #9 from paolo dot carlini at oracle dot com 2009-09-14 23:41
---
David, thanks for your help, I think that in case something similar can be
tested to work fine with move-only types, we could certainly do the change,
it's small enough. In general, it would be nice if you coul
--- Comment #10 from potswa at mac dot com 2009-09-14 23:59 ---
I'll look into it. That's a long list to do and learn ;v) .
I think the general idea here is that the compiler is good at optimizing out
the useless moves generated by swap. It turns out that my code has less of a
straight
--- Comment #11 from paolo dot carlini at oracle dot com 2009-09-15 00:07
---
David, it works like this: first you check out via svn a local copy of the
current GCC head. Then, you do your local changes to the code, the library in
this case, and you validate your changes by running 'mak
--- Comment #11 from aoliva at gcc dot gnu dot org 2009-09-15 04:17 ---
Referencing plain variable names in debug stmts is probably not a good idea, I
think it's too fragile. However, arranging for SSA defs that would have been
propagated into debug stmts to be instead replaced with oth
--- Comment #8 from vijay dot x dot jain at jpmchase dot com 2009-09-15
04:18 ---
I have got the issue. The problem is not sed but rather the pattern being
searched from ld --version
My ld --version returns
GNU ld (GNU Binutils)2.18
Where the pattern looked by the search pattern is
G
--- Comment #9 from vijay dot x dot jain at jpmchase dot com 2009-09-15
04:21 ---
Also I would like your sincere effort to resolve the problem. Your product
rocks!.
We are yet to test our components. Hope there would be no further runtime
issues.
Thanking you from bottom of the heart.
libtool: link: /home/jie/blackfin-sources/build45220-5/gcc_build-4.5/./gcc/xgcc
-B/home/jie/blackfin-sources/build45220-5/gcc_build-4.5/./gcc/
-B/home/jie/installs/bfin-45-220-5/bfin-linux-uclibc/bin/
-B/home/jie/installs/bfin-45-220-5/bfin-linux-uclibc/lib/ -isystem
/home/jie/installs/bfin-45-220-
--- Comment #1 from jzhang918 at gmail dot com 2009-09-15 05:57 ---
The cause is that DW_TAG_variable references gomp_tls_data instead of
___emutls_v.gomp_tls_data.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41357
53 matches
Mail list logo