in gcc...
The alternative would be to store the full enum instead of a bitfield
(just for stage1 so that's not too bad), but some comments in the code
seem to advise against it.
--
Marc Glisse
it's only for C that
they are a GNU extension - so can't we just enable them unconditionally
when building as C++?)
Great, I didn't know that. That's a much better solution.
--
Marc Glisse
On Mon, 1 Aug 2011, Oleg Smolsky wrote:
BTW, some of these tweaks increase the binary size to 99K, yet there is no
performance increase.
I don't see this in the thread: did you use -march=native?
--
Marc Glisse
On Mon, 1 Aug 2011, Toon Moene wrote:
See:
http://gcc.gnu.org/ml/gcc-testresults/2011-08/msg00117.html
Er, the python thing only tells you your system has a broken symlink but
ignores it. Did you check in libgcc/config.log for the real error?
--
Marc Glisse
5." or GNU, or grep -v for
" [0-4]".
3) something else.
--
Marc Glisse
orter:
class string;
void f(const string&);
string x();
struct locale {
string y() const;
};
template void g(const locale& l) {
f(x()); // OK
f(l.y()); // FAIL in C++0X
}
g++ apparently instantiates more eagerly in C++0X than in C++03.
--
Marc Glisse
(first use in this
function)
Strange, this is expected with gcc-3.4 (although there is a workaround
in the development version of mpc) but not with gcc-4.6.
--
Marc Glisse
). It requires that you
first have:
int f(int);
and only then:
int f(int){return 0;}
--
Marc Glisse
you can manually force
instantiation in one translation unit and inhibit it in the others).
(sorry I didn't manage to circumvent the problem to a small piece of
code),
Er, what did you try?
--
Marc Glisse
, then I guess this patch will solve it:
http://gcc.gnu.org/ml/gcc-patches/2011-08/msg01674.html
--
Marc Glisse
ic_design_a.html
which is good since the main point seems to be to share it between
implementations. Are there others on board?
--
Marc Glisse
On Sat, 1 Oct 2011, Andrew MacLeod wrote:
On 10/01/2011 02:55 AM, Marc Glisse wrote:
"The compiler must ensure that for any given object, it either ALWAYS
inlines lock free routines, OR calls the external routines. For any given
object, these cannot be intermixed."
Why? Y
is deleted, the FILE* is fclosed] or
even std::ostringstream or std::ostring-s shared between several passes.
Yes, those are the usual arguments for a finalizer.
--
Marc Glisse
On Thu, 20 Oct 2011, Basile Starynkevitch wrote:
On Thu, Oct 20, 2011 at 09:11:02AM +0200, Marc Glisse wrote:
On Thu, 20 Oct 2011, Basile Starynkevitch wrote:
PPL [Parma Polyhedra Library] data, like e.g. ppl_Constraint_t
[from header that is, using a C API] comes to mind. If
you want to
the naive question, but
std::vector can take an allocator parameter, gmp lets you specify an
allocation function...
(note that I have never looked at Ggc so my question may be off...)
--
Marc Glisse
hanks for
bearing with my questions.
--
Marc Glisse
an underscore for future normalization. I interpret that as: defining your
own suffix k should print a warning instead of an error.
I don't believe this is worth changing (if the error message is readable
enough) until there is a plan for actually using that suffix.
--
Marc Glisse
e exotic pieces of legal code that were broken by this
extension, so it had to go.
--
Marc Glisse
On Tue, 8 Nov 2011, Marc Glisse wrote:
On Tue, 8 Nov 2011, Ulrich Drepper wrote:
Complicated title, here's a bit of code:
#ifdef FIX
# define PARM2 , class T5
#else
# define PARMS2
#endif
template
struct cl1 {
};
template class T4 = cl1>
struct cl2 {
};
cl2<> var;
If co
that the register
allocator is doing a fairly poor job on SSE/AVX registers...
--
Marc Glisse
try to synchronize on some features.
--
Marc Glisse
On Thu, 5 Jan 2012, Marc Glisse wrote:
Do you have any suggestion on what libstdc++ can do when faced with C
libraries that will randomly declare gets or not depending on flags? It would
need knowledge of these exact flags so it can provide a replacement exactly
when it isn't declared (
gnore the rest).
Is that what's supposed to happen? I can use another mechanism than
attributes, but this looks suspicious.
--
Marc Glisse
apt quite a few functions to preserve it. Using an
attribute seems to make sense and would reuse more existing mechanisms
(though it may have drawbacks too).
--
Marc Glisse
r the math functions, this is normally more a libc feature, so you might
get very different results on different OS. Then again, by using
-ffast-math, you allow the math functions to return any random value, so I
can think of ways to make it even faster ;-)
--
Marc Glisse
r project,
and with recursive dependencies it would quickly get out of hand.
--
Marc Glisse
q.c
__has_builtin
$ clang -E q.c
--
Marc Glisse
ocs.sun.com/app/docs/doc/817-1984/chapter2-88783?a=view#chapter2-7
seems to recommend the -t linker flag.
--
Marc Glisse
ve the same characteristic, but it may indeed not
be worth the trouble.
--
Marc Glisse
On Tue, 6 Apr 2010, Jerome Quinn wrote:
undefined reference to `mp_get_memory_functions'
This means your version of GMP is too old. configure should probably catch
this.
--
Marc Glisse
n.com/app/docs/doc/805-3172/6j31br5j5
Do you mean its output is different enough that it is unusable here? Or
that it is not installed by default? (SUNWbtool is already listed as a
requirement in install/specific.html)
--
Marc Glisse
On Fri, 23 Apr 2010, Manuel López-Ibáñez wrote:
This seems to be the question running around the blogosphere for
several projects. And I would like to ask all people that read this
list but hardly say or do anything.
What reasons keep you from contributing to GCC?
Not sure we should spam this
s a bug in
-fstack-protector in that version that masks this.
Anyway, thanks both of you for helping to track it down. I'll forward this
along to the MPC maintainers.
This could be related to a call to sprintf(str,...,str,...), which
according to the doc is undefined behaviour.
--
Marc Glisse
at you can also try to ping Oracle with this pointer:
http://bugs.sun.com/view_bug.do?bug_id=6832717
--
Marc Glisse
the linker is gnu?
--
Marc Glisse
On Tue, 11 May 2010, Ian Lance Taylor wrote:
Marc Glisse writes:
On Tue, 11 May 2010, Jakub Jelinek wrote:
And you can use -Wl,-O1 (pass -O1 to the linker) to let the linker
determine optimal size of the hash table (minimum number of collisions
for reasonably sized section).
Was it
/lib/gold-ld
to select the ld you want.
--
Marc Glisse
since an alternative is now available.
--
Marc Glisse
appen with X::v defined
separately)
--
Marc Glisse
he problem is that 's0' is a single-precision float register and
it should be 'd0' instead.
Either I'm seriously missing something, in which case I would be most
obliged if someone sent me to the right direction; or it is a compiler
or documentation bug.
Thanks,
Zoltan
--
Marc Glisse
hanged.
https://gcc.gnu.org/bugs/ says that you should first try compiling your
code with -fsanitize=undefined, which tells you at runtime that your code
is broken.
Apart from that, bug reports should go to https://gcc.gnu.org/bugzilla/
and questions to gcc-h...@gcc.gnu.org.
--
Marc Glisse
antee about this anyway.
In the other case, it could affect correct
code before the trap.
-fnon-call-exceptions helps with the first testcase but not with the
second one. I don't know if that's by accident, but the flag seems
possibly relevant.
--
Marc Glisse
version of GMP first? gcd_1.c has only 103
lines in release 6.2.1.
A stack trace (UBSAN_OPTIONS=print_stacktrace=1) would make it easier to
guess where this is coming from.
--
Marc Glisse
be updated.
--
Marc Glisse
...);
No, curl_easy_setopt is a macro. If you look at the preprocessed code, you
get many statements doing the same wrong operation, and one warning for
each of them.
(wrong list, should be gcc-help, or an issue on bugzilla)
--
Marc Glisse
in is slower and less precise than the libc SSE2 implementation.
--
Marc Glisse
On Tue, 28 May 2013, Anton Titov wrote:
I'm trying to force gcc to trust me that my memory allocation function is
returning aligned memory. So far I tried everything I found with no luck.
Did you try using __builtin_assume_aligned?
--
Marc Glisse
you can't then assign that to an int, because it will overflow.
0x8000 will not fit in an int: it's undefined behaviour.
Implementation defined, and ok with gcc:
http://gcc.gnu.org/onlinedocs/gcc/Integers-implementation.html
--
Marc Glisse
relying on it. No?
OTOH, it may have been a proxy for __cplusplus for users for a good while.
People may still be using it even if the library no longer uses it.
What do folks think?
Please keep it. Removing it won't gain you anything, and people do rely on
it.
--
Marc Glisse
ow it goes :-)
Thanks,
--
Marc Glisse
eem easy to avoid...
No folding categories as in
http://gcc.gnu.org/ml/gcc-patches/2011-03/msg01099.html ?
--
Marc Glisse
IT_FIELD_REF for vec_select and CONSTRUCTOR
for vec_duplicate, adding new nodes is always painful.
This enhancement could possibly help further optimizing larger scenarios such
as linear systems.
Regards
VP
--
Marc Glisse
to the gcc bugzilla and file an enhancement request (category
tree-optimization) if these problems are not there yet.
--
Marc Glisse
On Fri, 20 Sep 2013, Dennis Luehring wrote:
Am 20.09.2013 07:50, schrieb Marc Glisse:
(gcc-h...@gcc.gnu.org would have been a better list)
On Fri, 20 Sep 2013, Dennis Luehring wrote:
> gcc 4.8.1, -O3 -march=native -std=c++11
>
> small example program to check what does the
ine with integer_minus_onep returning true on -1U. Without the renaming
patch, there is a single use of integer_minus_onep (in fold-const.c), so
it shouldn't be hard to check all users, and IIRC we want it to return
true for -1U in this case (turning x*-1 into -x).
--
Marc Glisse
nline function where I expect gcc must optimize away the second copy of
the code.
Not that it wouldn't be good if there was no second copy for gcc to
optimize...
--
Marc Glisse
packages):
http://clang.debian.net/status.php?version=3.3&key=FUNCTION_RETURNS_VALUE
That's cool, if clang forces people to update their code to C99, maybe
we'll be able to switch gcc to use -std=gnu99 by default one day...
--
Marc Glisse
der at hand), a paragraph
at the beginning of the description of string.h. It does not apply to
strnlen_s. For strnlen, which is only in posix, I am not sure, but glibc
has the nonnull attribute.
--
Marc Glisse
on…
Did you really test on x86_64-linux? I am only seeing this -2.71e-20 when
using -mfpmath=387.
--
Marc Glisse
On Wed, 20 Nov 2013, Marc Glisse wrote:
On Wed, 20 Nov 2013, FX wrote:
I reduced my problem to the following code:
int main (void)
{
double x;
x = 1 / 3.;
__builtin_printf ("%.30lg %.30lg\n", __builtin_remainder(1., 1/3.), 1/3.);
__builtin_printf ("%.30lg %.30lg\n",
aster). That is
because, at a high level, signed multiplication overflow is undefined
behavior while shift isn't. At a low level, gcc knows it can implement *4
as a shift anyway.
v[x + 4] = t[x + 4];
}
return 0;
}
--
Marc Glisse
k for that, so you may have to edit
gcc's source code directly.
If you compile with -g and look at debug statements, the information is
not completely lost after the pass that optimizes this to just VAR1 = 7,
but it still wouldn't be convenient to use that for your purpose.
--
Marc Glisse
r. Second, there are hundreds of places on the internet answering
this same question.
Is this expected behavior?
Yes.
--
Marc Glisse
by default]
Or does the "enabled by default" bit mean something other than I think it means?
It is the warning that is enabled by default (in other messages you would
see [-Wunused] or [-Wformat] etc to tell you which option controls this
warning).
--
Marc Glisse
ll me the errors of my ways?
Project layout:
Irrelevant.
Problem: class1source.cpp fails to compile on it's header with
"error: ‘shared_ptr’ does not name a type"
Have you heard of namespaces?
--
Marc Glisse
er libstdc++ or
libc++). Filing some new PRs may be in order, if there aren't already a
few about this.
--
Marc Glisse
a real reviewer now ;-)
We should show the flag that enables the warning, so that users can use the
-Wno- variant to disable it if they want. Or does "enabled by default" mean
that no such -Wno- flag exists?
Exactly. -std=c++11 is the right way to make this warning quiet.
--
Marc Glisse
:
/home/pritam/GCC_BUILDS/gcc_4.7/install/lib/gcc/i686-pc-linux-gnu/4.7.2/../../../../include/c++/4.7.2/cstdlib:76:8:
error: attempt to use poisoned "calloc"
Include before any gcc header, i.e. before things can be
poisoned.
--
Marc Glisse
ance -ftrapping-math for which a split
was discussed (PR 53805#c4).
--
Marc Glisse
signal failure.
I am not sure if it will be easy to write code that works for generic and
gimple. I'll see...
--
Marc Glisse
to y+3 and 5+y "simplifies" to
y+5, then it looks worth it to replace the expression with x?y+3:(y+5).
Would there be a convenient way to separate them, so it can tell me that
3+y should be replaced with y+3 but that it is not a simplification?
--
Marc Glisse
On Wed, 12 Mar 2014, Richard Biener wrote:
On Tue, 11 Mar 2014, Marc Glisse wrote:
On Mon, 3 Mar 2014, Richard Biener wrote:
How do you handle a
transformation that currently tries to recursively fold something else and
does the main transformation only if that simplified?
And doesn'
ST1
That's not the same, try X=1, CST1=1, CST2=0.
b) (X & ~CST) == 0 -> X <= CST
Uh, that can't be true for all constants, only some with a very specific
shape (7 is 2^3-1).
--
Marc Glisse
On Fri, 14 Mar 2014, Prathamesh Kulkarni wrote:
On Fri, Mar 14, 2014 at 9:25 PM, Marc Glisse wrote:
On Fri, 14 Mar 2014, Prathamesh Kulkarni wrote:
The patterns mentioned in the links were:
a) (X >> CST1) >= CST2 -> X >= CST2 << CST1
however, an expression Y >= CS
();
cerr << a << endl;
}
when I compil with : g++ -Wall fic.cpp
I think that there should be a warning.
-Wconversion
--
Marc Glisse
arithmetic that assume that
arguments and results are not NaNs or +-Infs.
so I am not sure what you expect exactly.
--
Marc Glisse
ike CXX, but then it doesn't matter.
--
Marc Glisse
u.org/bugzilla/show_bug.cgi?id=50461
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51935
(second one has a patch)
--
Marc Glisse
On Thu, 8 Mar 2012, NightStrike wrote:
On Wed, Mar 7, 2012 at 10:12 AM, Marc Glisse wrote:
On Wed, 7 Mar 2012, NightStrike wrote:
Building gmp/mpfr/mpc in tree fails in the configure-stage1-mpc step
with the current version of mpfr version 3.1.0, out since last
October, and mpc, version 0.9
ompiled for sse. And the
software implementation was more precise than fsin. My conclusion was to
ignore fsin from then on.
--
Marc Glisse
-with-cxx in
the configure options. Or you can just assume that it is built as C++,
which is the default after all. People who have anything different should
have asked for it and thus know what to expect.
--
Marc Glisse
x27;t have stage 2 and haven't been tested with a
C++ compiler yet?
For build issues with other compilers, 50167 and 50177 are still open
(last time I looked, I couldn't find the meta-bug about switching to C++
in stage1 to add them as blockers).
--
Marc Glisse
).
--
Marc Glisse
On Tue, 10 Apr 2012, Rainer Orth wrote:
Marc Glisse writes:
Currently, they all use versions of g++ 4.4, but I could give it a try
with different versions of Sun/Oracle Studio CC.
They should all fail, versions up to 12.2 because of CC bugs (reported to
Oracle and fixed in 12.3 I think
On Tue, 10 Apr 2012, Rainer Orth wrote:
Marc Glisse writes:
Thanks for the heads-up, that saved me time and effort. Do you have CRs
for the CC bugs?
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7073578
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7073575
I think that was it
needed with g++ that uses
intermediate types/typedefs to print a short type, but it was a great way
to have the arguments at the same depth visible at a glance, and I still
use it occasionally (also on the output of c++filt).
--
Marc Glisse
mance penalty because of this, it is a serious
optimizer deficiency that should be fixed so all C++ users can benefit.
--
Marc Glisse
to report build errors?
No, please send any follow-up to gcc-h...@gcc.gnu.org only.
--
Marc Glisse
nedocs/gcc/Warning-Options.html#index-Winit_002dself-289
(it won't warn if you write that line in the global scope, but it does
inside a function)
--
Marc Glisse
l be
necessary because of platforms where size_t is unsigned short (I didn't
know those existed...) and because std::max is picky about having the same
type for both arguments (the papers about improving it for C++11 were
rejected).
--
Marc Glisse
On Wed, 9 May 2012, Gabriel Dos Reis wrote:
On Wed, May 9, 2012 at 3:41 AM, Marc Glisse wrote:
necessary because of platforms where size_t is unsigned short (I didn't know
those existed...)
Well, I suspect AVR might be such platform but I do not seem to have an
ABI document for AV
lue I compare?
Both. And you also need to look at the code that is nearby, not just this
one instruction. In short, don't bother. If you really want to know,
benchmark both versions.
--
Marc Glisse
2)))
(set (reg:DI 6) (sign_extend:DI (match_dup 5)))
and replacing it with your version that zero-extends to DI and does the
multiplication there.
--
Marc Glisse
/predefs.h: No such file or directory
[...]
and there's a lot more , what to do ??
export LIBRARY_PATH=/usr/lib/i386-linux-gnu
export C_INCLUDE_PATH=/usr/include/i386-linux-gnu
export CPLUS_INCLUDE_PATH=/usr/include/i386-linux-gnu
--
Marc Glisse
On Wed, 6 Jun 2012, mixpro wrote:
Marc Glisse-6 wrote:
export LIBRARY_PATH=/usr/lib/i386-linux-gnu
export C_INCLUDE_PATH=/usr/include/i386-linux-gnu
export CPLUS_INCLUDE_PATH=/usr/include/i386-linux-gnu
know i get :
/usr/bin/ld: cannot find -lgcc_s
collect2: ld returned 1 exit status
You
you are doing it for gcc only, that could work)
I doubt you would be happy with a solution that requires calling
gimple_build_assign_with_ops((...)) (double parentheses), might as well
add MEM_STAT_INFO manually instead.
Nope, sorry :-(
--
Marc Glisse
ve to code
// file foo2.cc
extern "C" {
extern const int twosymb;
const int twosymb=2;
};
to get a symbol "twosymb" in foo2.o
Yes, that's one of the usual traps about C vs C++. Note that you can write
everything on the same line...
extern "C" const int twosymb = 2;
--
Marc Glisse
message.
(it is probably better to avoid the --with-*=/usr, they are unlikely to
help)
--
Marc Glisse
give up. If you get interested say in libstdc++,
you may then be motivated to fix some C++ front-end bug that affects it,
or some missed optimization where you noticed you had to write twisted C++
to get gcc to generate the best asm.
--
Marc Glisse
ago or so.
--
Marc Glisse
101 - 200 of 227 matches
Mail list logo