Hi Oleg,
+/*
+This pass tries to optimize for example this:
+ mov.l @(4,r4),r1
+ tst r1,r1
+ movtr1
+ tst r1,r1
+ bt/s.L5
+
+into something simpler:
+ mov.l @(4,r4),r1
+ tst r1,r1
+ bf/s.L5
+
+Such sequences can be identif
On 3 October 2013 23:43, Michael Hudson-Doyle wrote:
> Hi,
>
> As libatomic builds for and the tests pass on AArch64 (built on x86_64
> but tested on a foundation model, logs and summary:
>
> http://people.linaro.org/~mwhudson/libatomic.sum.txt
> http://people.linaro.org/~mwhudson/runtest-
On Thu, Oct 3, 2013 at 4:11 AM, Andrew MacLeod wrote:
> this patch consolidates tree-ssa-loop*.c files with new .h files as required
> (8 in total)
>
> A number of the prototypes were in tree-flow.h, but there were also a few in
> cfgloop.h. tree-ssa-loop.h was created to contain a couple of comm
> gcc/ChangeLog:
>
> 2013-10-03 Renlin Li
>
> * config/arm/arm-cores.def (cortex-a53): Use cortex tunning.
s/tunning/tuning.
Ok with that change.
Ramana
On Fri, 4 Oct 2013, Jan Hubicka wrote:
> Hi,
> this patch makes -Ofast to also imply -mfpmath=sse. It is important win on
> SPECfP (2000 and 2006). Even though for exmaple the following
> float a(float b)
> {
>return b+10;
> }
>
> results in somewhat ridiculous
> a:
> .LFB0:
> .cfi
On Fri, Oct 4, 2013 at 6:43 PM, Andrew MacLeod wrote:
> This patch mostly re-factors tree-flow-inline.h out of existence.
>
> the gimple-df data structure has found anew home in gimple-ssa.h, and this
> actually seems like a very appropriate place for it as it holds a lot fo the
> ssa specific stu
On 07/10/13 09:47, Ramana Radhakrishnan wrote:
gcc/ChangeLog:
2013-10-03 Renlin Li
* config/arm/arm-cores.def (cortex-a53): Use cortex tunning.
s/tunning/tuning.
Ok with that change.
Hi Renlin,
I've committed this for you as r203241 with Changelog entry:
2013-10-07 Renlin Li
Hi Jason,
I did intend to break this up but as I've completed the first pass at
refactoring implicit function templates and along the way fixed the 5
bugs submitted by Volker I thought I'd post the rolled up patch for you
to peruse.
It (should) support arbitrarily complex use of 'auto' in a
> On Fri, 4 Oct 2013, Jan Hubicka wrote:
>
> > Hi,
> > this patch makes -Ofast to also imply -mfpmath=sse. It is important win on
> > SPECfP (2000 and 2006). Even though for exmaple the following
> > float a(float b)
> > {
> >return b+10;
> > }
> >
> > results in somewhat ridiculous
> > a:
>
On Mon, 7 Oct 2013, Jan Hubicka wrote:
> > On Fri, 4 Oct 2013, Jan Hubicka wrote:
> >
> > > Hi,
> > > this patch makes -Ofast to also imply -mfpmath=sse. It is important win
> > > on
> > > SPECfP (2000 and 2006). Even though for exmaple the following
> > > float a(float b)
> > > {
> > >retu
> > In meantime I (partially,
> > since megrez stopped producing 32bit spec2k6 results) benchmarked
> > -mfpmath=sse,387 and it does not seem to be a loss anymore. So perhaps we
> > can
> > give it a try?
>
> Not sure ... I would guess that it's not a win on any recent architecture
> (and LRA i
On Mon, Oct 7, 2013 at 12:33 AM, Marc Glisse wrote:
> Hello,
>
> this patch asserts that when we call a function with the nonnull attribute,
> the corresponding argument is not zero, just like when we dereference a
> pointer. Everything is under a check for flag_delete_null_pointer_checks.
>
> Not
OK to commit?
Index: index.html
===
RCS file: /cvs/gcc/wwwdocs/htdocs/index.html,v
retrieving revision 1.892
diff -c -r1.892 index.html
*** index.html 3 Oct 2013 14:15:36 - 1.892
--- index.html 7 Oct 2013 09:35:35 -
**
On 10/04/13 22:23, Jan Hubicka wrote:
On Fri, Oct 4, 2013 at 11:54 AM, Jan Hubicka wrote:
I looked at this problem. Bug updated
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58619
This is a bug when updating block during tree-inline. Basically, it is
legal for *n to be NULL. E.g. When gimple_blo
On Mon, Oct 7, 2013 at 12:02 PM, Ramana Radhakrishnan wrote:
> On 10/04/13 22:23, Jan Hubicka wrote:
>>>
>>> On Fri, Oct 4, 2013 at 11:54 AM, Jan Hubicka wrote:
>
> I looked at this problem. Bug updated
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58619
>
> This is a bug when
Hi,
On 10/07/2013 11:14 AM, Adam Butcher wrote:
+ if (!cp_disable_auto_as_implicit_function_template_parm &&
+ current_binding_level->kind == sk_function_parms)
Stylistic nit: && should be on the next line.
Thanks!
Paolo.
Hi!
On Sat, Sep 21, 2013 at 07:45:03AM -0400, Jason Merrill wrote:
So, for things that worked fine for me, I'm attaching two patches
(W050b and W051a), do they look ok to you? The rest causes issues, all
of them on gcc/testsuite/g++.dg/gomp/udr-3.C testcase, see below.
> On 09/20/2013 12:25 PM,
On 6 October 2013 23:43, Tim Shen wrote:
> Here's a simple piece of code
> https://gist.github.com/innocentim/6849759 the reveals _BFSExecutor's
> inefficiency. Some optimizations are here to reduce the unecessary
> time complexity from O(n^2) to O(n).
>
> I'll do a bootstrap and full testing befor
Hi!
Vincent reported that on some machines affinity stopped working,
apparently sometimes sysconf (_SC_NPROCESSORS_CONF) is smaller than
the minimum number of logical CPUs kernel allows for sched_getaffinity
syscall :(, and I don't seem to see how to query that magic number.
So, this patch, if pt
Ian Lance Taylor writes:
> On Wed, Oct 2, 2013 at 7:45 AM, Rainer Orth
> wrote:
>>
>> Here's what I came up with. As I said, it is inspired by the libffi
>> code, but a bit simplified since e.g. stuff like no .ascii support
>> aren't relevant on the Solaris versions supported on mainline and 4
Hi!
I've obviously meant to do the forking even for more than 8 contiguous
logical CPUs available, all the test needs is that all of 0, 1, 2, 3, 4, 5,
6, 7 logical CPUs are available and not disallowed by initial affinity mask.
2013-10-07 Jakub Jelinek
* testsuite/libgomp.c/affinity-1
Hi,
__cxa_throw_bad_array_new_length and __cxa_throw_bad_array_new_length
are generated with -fno-exceptions right now. The attached patch fixes
that problem. Bootstrapped and regtested on x86_64-unknown-linux-gnu:
2013-10-07 Alexander Ivchenko
* gcc/cp/call.c (build_operator_new_call
On Mon, 7 Oct 2013, Richard Biener wrote:
On Mon, Oct 7, 2013 at 12:33 AM, Marc Glisse wrote:
Hello,
this patch asserts that when we call a function with the nonnull attribute,
the corresponding argument is not zero, just like when we dereference a
pointer. Everything is under a check for fla
Hello,
this patch adds an attribute to let the compiler know that a function
never returns NULL. I saw some ECF_* flags, but the attribute seems
sufficient. I considered using nonnull(0), but then it would have been
confusing that the version of nonnull without arguments applies only to
param
This patch fixes two ICEs on valid testcases and one ICE on an invalid
testcase. In the former, we should check for EXPR_P (as in the fix for
PR58516) before using SET_EXPR_LOCATION; in the latter we should bail
out early if the return-expression is the error_mark_node, otherwise
subsequent call o
On 09/27/13 09:23, Jakub Jelinek wrote:
On Thu, Sep 26, 2013 at 02:31:33PM -0500, Aldy Hernandez wrote:
+/* Create a simd clone of OLD_NODE and return it. */
+
+static struct cgraph_node *
+simd_clone_create (struct cgraph_node *old_node)
+{
+ struct cgraph_node *new_node;
+ new_node = cgra
On Mon, Oct 7, 2013 at 5:24 AM, Rainer Orth
wrote:
>
> Unfortunately, Solaris 9 testing with Sun as revealed two problems: that
> assembler cannot handle either # comments or .global instead of .globl.
> The following patch fixes this and allows makefunc_386.S to assemble.
> Also compiled with a
Sorry I forgot to reply the mailing list. Here's the discussion:
--- Tim
On Oct 7, 2013 7:12 AM, "Jonathan Wakely" wrote:
> Does _TodoList really need to derive from std::vector<_StateIdT> or
> could it just have a seco
On Mon, Oct 7, 2013 at 12:22 PM, Jonathan Wakely wrote:
> because that turns into the equivalent of a std::memset() on integers.
Here I catch your idea. But think about the following example:
_M_exists.size() == 1000, but only 3 of the elements are true. Now
what I intend to do is assigning these
You are right. I am not an expert on numerical analysis, but I tested
your case and it proves the number 4 conversion is not safe.
Now we have four conversions which are safe once the precision
requirement is satisfied. I added a condition if (type != newtype) to
remove the unsafe one, as in this
On Mon, 2013-10-07 at 16:17 +0200, Marc Glisse wrote:
> Hello,
>
> this patch adds an attribute to let the compiler know that a function
> never returns NULL. I saw some ECF_* flags, but the attribute seems
> sufficient. I considered using nonnull(0), but then it would have been
> confusing tha
On Mon, Oct 7, 2013 at 7:12 AM, Jonathan Wakely wrote:
> On 6 October 2013 23:43, Tim Shen wrote:
>> Here's a simple piece of code
>> https://gist.github.com/innocentim/6849759 the reveals _BFSExecutor's
>> inefficiency. Some optimizations are here to reduce the unecessary
>> time complexity from
On 7 October 2013 18:12, Tim Shen wrote:
> On Mon, Oct 7, 2013 at 12:22 PM, Jonathan Wakely
> wrote:
>> because that turns into the equivalent of a std::memset() on integers.
>
> Here I catch your idea. But think about the following example:
> _M_exists.size() == 1000, but only 3 of the elements
On Mon, Oct 7, 2013 at 1:28 PM, Jonathan Wakely wrote:
> std::memset() on about 125 bytes is not a big deal, I doubt it's
> significantly more expensive than the calculations to find the right
> bits and do the necessary masking for three elements.
> std::vector is a strange beast, remember.
OK s
On Mon, Oct 7, 2013 at 1:40 PM, Tim Shen wrote:
> while (!this->empty())
> this->pop();
Sorry it's this->_M_empty() and this->_M_pop();
--
Tim Shen
On Mon, 7 Oct 2013, David Malcolm wrote:
On Mon, 2013-10-07 at 16:17 +0200, Marc Glisse wrote:
Hello,
this patch adds an attribute to let the compiler know that a function
never returns NULL. I saw some ECF_* flags, but the attribute seems
sufficient. I considered using nonnull(0), but then it
The last patch introduced a regression. This ensures that we don't
generate false positives diagnosing errors in non-template contexts.
2013-10-07 Andrew Sutton
* gcc/cp/cp-tree.h (check_constrained_friend): Take requirements as
an argument.
* gcc/cp/constraints.cc (chec
On Mon, 2013-10-07 at 19:51 +0200, Marc Glisse wrote:
> On Mon, 7 Oct 2013, David Malcolm wrote:
>
> > On Mon, 2013-10-07 at 16:17 +0200, Marc Glisse wrote:
> >> Hello,
> >>
> >> this patch adds an attribute to let the compiler know that a function
> >> never returns NULL. I saw some ECF_* flags,
Hi, David,
Thanks for the review. Patch updated.
Dehao
On Sun, Oct 6, 2013 at 11:54 AM, Xinliang David Li wrote:
> Adding additional early inline + value transform (calling them as
> utility functions) is 'unconventional' way of invoking passes. It
> would be helpful to do more heavy documentat
On 10/07/13 12:37, David Malcolm wrote:
On Mon, 2013-10-07 at 19:51 +0200, Marc Glisse wrote:
On Mon, 7 Oct 2013, David Malcolm wrote:
On Mon, 2013-10-07 at 16:17 +0200, Marc Glisse wrote:
Hello,
this patch adds an attribute to let the compiler know that a function
never returns NULL. I saw
OK.
If we have a friend declaration inside a constrained partial
specialization, will that still get a false positive?
Jason
On Wed, 2013-10-02 at 21:32 -0400, David Malcolm wrote:
[...]
> * I'm running into configure/Makefile issues with
> --enable-host-shared, where CFLAGS contains -fPIC, but only on
> invocations of leaf Makefiles, not on recursive "make" - so it works if
> you cd into $builddir/gcc and make (and so
Ping.
On Wed, Sep 25, 2013 at 02:41:32PM +0200, Marek Polacek wrote:
> On Thu, Sep 12, 2013 at 02:26:55PM +0200, Marek Polacek wrote:
> > This patch adds the instrumentation of VLA bounds. Basically, it just
> > checks that
> > the size of a VLA is positive. I.e., We also issue an error if the
On Fri, 2013-10-04 at 15:00 +, Joseph S. Myers wrote:
> On Thu, 3 Oct 2013, David Malcolm wrote:
>
> > Right now all you get back from the result is a "void*" which you're
> > meant to cast to machine code for the CPU. I guess we could add an
>
> And right now the library is calling dlopen.
On Mon, Oct 7, 2013 at 1:28 PM, Jonathan Wakely wrote:
> std::memset() on about 125 bytes is not a big deal, I doubt it's
> significantly more expensive than the calculations to find the right
> bits and do the necessary masking for three elements.
> std::vector is a strange beast, remember.
Prob
The patch is rather obvious. The question is just why was the check
there at the first place.
Build and regtested on x86-64-gnu-linux.
OK for the trunk?
Tobias
2013-10-07 Tobias Burnus
PR fortran/58658
* expr.c (gfc_check_vardef_context): Fix pointer diagnostic
for CLASS(*).
2013-10-07
ping...
On Tue, Oct 1, 2013 at 1:28 PM, Dehao Chen wrote:
> Hi,
>
> This patch disables the C++ frontend to add " *INTERNAL* " suffix to
> maybe_in_charge_destructor/constructor. This is needed because these
> functions could be emitted in the debug info, and we would want to
> demangle these nam
On Wed, Oct 2, 2013 at 6:32 PM, David Malcolm wrote:
> This is very much a proof-of-concept/work-in-progress at this stage, but
> attached is a patch to GCC which aims to provide an embeddable
> JIT-compilation API, using GCC as the backend: libgccjit.so.
>
> This shared library can then be dynami
On Mon, 2013-10-07 at 10:30 +0200, Christian Bruel wrote:
> Hi Oleg,
>
> +/*
> +This pass tries to optimize for example this:
> + mov.l @(4,r4),r1
> + tst r1,r1
> + movtr1
> + tst r1,r1
> + bt/s.L5
> +
> +into something simpler:
> + mov.l @(4,r4),r1
> +
On Mon, 2013-10-07 at 07:44 +0900, Kaz Kojima wrote:
> Oleg Endo wrote:
> > Forgot to handle a case in function can_remove_cstore, thanks for
> > catching it. Fixed in the attached patch and also added test cases.
> > Retested as before without new failures.
>
> Ok for trunk.
>
> > Yeah, right.
Andi Kleen writes:
PING^2
> Andi Kleen writes:
>
>> From: Andi Kleen
>>
>> [I posted this originally quite some time ago.
>> This version fixes all review problems, particularly
>> it works for C++ too and the test case really works.]
>
> Ping!
>
> Could someone please review it.
>
> Note this
On this patch, I add some infrastructure to say whether a given mode can go in
a general purpose register, floating point register, or altivec register, and
if it can, what kinds of addressing is legal for the mode. In addition, I have
switched to using memset to setup the arrays indexed by mode.
On 7 October 2013 22:14, Tim Shen wrote:
> On Mon, Oct 7, 2013 at 1:28 PM, Jonathan Wakely wrote:
>> std::memset() on about 125 bytes is not a big deal, I doubt it's
>> significantly more expensive than the calculations to find the right
>> bits and do the necessary masking for three elements.
>>
On 18 June 2013 23:55, Jonathan Wakely wrote:
> Instead of fixing the bug three times I refactored the try_lock_xxx
> functions into a mixin template and used that in the various timed
> mutexes.
>
> PR libstdc++/57641
> * include/std/mutex (timed_mutex, recursive_timed_mutex): Move
On Mon, Oct 7, 2013 at 7:11 PM, Jonathan Wakely wrote:
> The version in your gist (which is *not* what your first patch did!)
> is faster for any size of _M_exists and any ratio of _M_states.size()
> / _M_exists.size():
Sorry for my original patch, I made a mistake! It's:
while (!_BaseT::em
Oleg Endo wrote:
> To be honest, I had some difficulty picking the name.
> Maybe something like 'sh_tbit_combine' or 'sh_treg_combine' would be
> better, or at least less confusing? Suggestions are highly appreciated.
'sh_treg_combine' or 'sh_combine_treg' sounds good to me.
Regards,
ka
On 8 October 2013 01:06, Tim Shen wrote:
> On Mon, Oct 7, 2013 at 7:11 PM, Jonathan Wakely wrote:
>> The version in your gist (which is *not* what your first patch did!)
>> is faster for any size of _M_exists and any ratio of _M_states.size()
>> / _M_exists.size():
>
> Sorry for my original patch,
Hi,
this ICE on invalid 4.8/4.9 Regression is very easy to fix: just add a
check for error_mark_node on the return of xref_tag (I'm also removing a
redundant one a few lines below). This brings us to the same error
message we get when there are no lambdas involved, eg for the existing
templat
Passes regression tests. Ok for google/4_8?
Thanks,
Teresa
2013-10-07 Teresa Johnson
* cp/cp-objcp-common.c (cmp_templ_arg): Fix argument pack
accesses.
Index: cp/cp-objcp-common.c
===
--- cp/cp-objcp-common.c
ok.
thanks,
David
On Mon, Oct 7, 2013 at 6:33 PM, Teresa Johnson wrote:
> Passes regression tests. Ok for google/4_8?
>
> Thanks,
> Teresa
>
> 2013-10-07 Teresa Johnson
>
> * cp/cp-objcp-common.c (cmp_templ_arg): Fix argument pack
> accesses.
>
> Index: cp/cp-objcp-common.c
>
On Mon, Oct 7, 2013 at 8:43 PM, Jonathan Wakely wrote:
> OK, this latest patch looks good so please go ahead and commit it - thanks!
Committed :)
--
Tim Shen
On 10/07/13 07:52, Marc Glisse wrote:
On Mon, 7 Oct 2013, Richard Biener wrote:
On Mon, Oct 7, 2013 at 12:33 AM, Marc Glisse
wrote:
Hello,
this patch asserts that when we call a function with the nonnull
attribute,
the corresponding argument is not zero, just like when we dereference a
point
On Tue, Oct 1, 2013 at 6:50 PM, Richard Biener
wrote:
> On Mon, Sep 30, 2013 at 7:39 AM, bin.cheng wrote:
>>
>
> I don't think you need
>
> + /* Sign extend off if expr is in type which has lower precision
> + than HOST_WIDE_INT. */
> + if (TYPE_PRECISION (TREE_TYPE (expr)) <= HOST_BITS_P
On Sun, Oct 6, 2013 at 6:43 AM, Jan Hubicka wrote:
>> 2013-10-03 Teresa Johnson
>>
>> * params.def (PARAM_MIN_HOT_RUN_RATIO): New parameter.
>
> I would not mention HOT in the parameter name. Blocks are hot/normal/unlikely
> and we HOT_BB_FREQUENCY_FRACTION.
>
> So perhaps UNLIKELY_BB_
On Fri, Oct 4, 2013 at 8:54 AM, Xinliang David Li wrote:
> On Thu, Oct 3, 2013 at 10:15 PM, Teresa Johnson wrote:
>> This patch handles the fact that small profile count values sometimes
>> get truncated down to 0 during updates due to integer arithmetic. This
>> causes sub-optimal function split
On Sun, Oct 6, 2013 at 6:51 AM, Jan Hubicka wrote:
>> The second part ensures that frequencies are correctly updated after
>> inlining. The problem is that after inlining the frequencies were
>> being recomputed directly from the corresponding bb counts in
>> rebuild_frequencies. If the counts had
Attached is an early version (C only) for #pragma ivdep, which aids
vectorization by setting (for the following for-loop) loop->safelen to
INT_MAX. [In the final version, I will also add parsing support for C++
and use it for Fortran's "do concurrent".]
As suggested by Richard and Jakub (than
67 matches
Mail list logo