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
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
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: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 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 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 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
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
>
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
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
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,
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 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
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 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 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.
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 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.
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 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
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
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
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
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.
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 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
OK.
If we have a friend declaration inside a constrained partial
specialization, will that still get a false positive?
Jason
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
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 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,
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, 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
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, 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 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 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 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
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, 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
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 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
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
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
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
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
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
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
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!
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
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!
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,
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.
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
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
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 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
> > 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, 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
> 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:
>
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 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
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 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
> 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 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
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-
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
67 matches
Mail list logo