Re: [PATCH/AARCH64] Enable software prefetching (-fprefetch-loop-arrays) for ThunderX 88xxx

2017-01-30 Thread Maxim Kuvyrkov
> + unsigned int l2_cache_size; > > Not a blocker to the patch but I wonder whether it would be a good idea to > group these prefetch-related parameters > (plus autoprefetcher_model) into a new nested struct here (prefetch_tunings > or something) since there's a decent > number of them and they're all related. Feel free to copy-paste from https://gcc.gnu.org/ml/gcc-patches/2017-01/msg02292.html , which is a copy-paste from aarch32 backend anyway ;-). -- Maxim Kuvyrkov www.linaro.org

Re: [PATCH 5/6][AArch64] Enable -fprefetch-loop-arrays at -O3 for cores that benefit from prefetching.

2017-01-30 Thread Maxim Kuvyrkov
> On Jan 30, 2017, at 3:23 PM, Kyrill Tkachov > wrote: > > Hi Maxim, > > On 30/01/17 12:06, Maxim Kuvyrkov wrote: >> This patch enables prefetching at -O3 for aarch64 cores that set >> "simultaneous prefetches" parameter above 0. There are curre

Re: [PATCH/AARCH64] Enable software prefetching (-fprefetch-loop-arrays) for ThunderX 88xxx

2017-01-30 Thread Maxim Kuvyrkov
from the prefetches... > > Not in this case. The main reason why I know is because the number of > L1 and L2 misses drops a lot. I can confirm this. In my experiments loop unrolling hurts several tests. The prefetching approach I'm testing for -O2 includes disabling of loop unrolling to prevent code bloat. -- Maxim Kuvyrkov www.linaro.org

Re: [PATCH/AARCH64] Enable software prefetching (-fprefetch-loop-arrays) for ThunderX 88xxx

2017-01-30 Thread Maxim Kuvyrkov
selected_cpu->tune->l2_cache_size, > +opts->x_param_values, > +global_options_set.x_param_values); > + > + > + /* Enable sw prefetching at -O3 for CPUS that prefetching is helpful. */ > + if (opts->x_flag_prefetch_loop_arrays < 0 > + && (opts->x_optimize >= 3 || opts->x_flag_profile_use) > + && !opts->x_optimize_size > + && aarch64_tune_params.autoprefetcher_model == > tune_params::AUTOPREFETCHER_SW) > +opts->x_flag_prefetch_loop_arrays = 1; AUTOPREFETCHER_* setting is for a completely different optimization done during instruction scheduling. It controls model of hardware auto-prefetcher, which some cores have. Autoprefetch HW does prefetches itself, and it is tangential to loop array prefetching. There are cores that benefit from both optimizations simultaneously, and there is no need to allow only one or the other. I think AArch64 should use (simultaneous_prefetches > 0) as the condition to enable loop array prefetching. -- Maxim Kuvyrkov www.linaro.org

Re: [PATCH 4/6] Port prefetch configuration from aarch32 to aarch64

2017-02-03 Thread Maxim Kuvyrkov
> On Jan 30, 2017, at 7:35 PM, Andrew Pinski wrote: > > On Mon, Jan 30, 2017 at 3:48 AM, Maxim Kuvyrkov > wrote: >> This patch port prefetch configuration from aarch32 backend to aarch64. >> There is no code-generation change from this patch. >> >> This pa

Re: [PATCH 5/6][AArch64] Enable -fprefetch-loop-arrays at -O3 for cores that benefit from prefetching.

2017-02-03 Thread Maxim Kuvyrkov
> On Jan 30, 2017, at 5:50 PM, Maxim Kuvyrkov wrote: > >> On Jan 30, 2017, at 3:23 PM, Kyrill Tkachov >> wrote: >> >> Hi Maxim, >> >> On 30/01/17 12:06, Maxim Kuvyrkov wrote: >>> This patch enables prefetching at -O3 for aarch64 cores that s

Re: [PATCH/AARCH64] Enable software prefetching (-fprefetch-loop-arrays) for ThunderX 88xxx

2017-02-03 Thread Maxim Kuvyrkov
Hi Andrew, I took the liberty of rebasing your patch on top of my patchset. Does it look correct? I think I addressed all the comments you had about my review and posted updated patches. -- Maxim Kuvyrkov www.linaro.org > On Jan 30, 2017, at 7:25 PM, Andrew Pinski wrote: > > On

Re: [PATCH][AArch64] Accept more addressing modes for PRFM

2017-02-04 Thread Maxim Kuvyrkov
s further, but I > think this is the right thing to do. > > Bootstrapped and tested on aarch64-none-linux-gnu. > > Maxim, do you want to try this on top of your patches on your hardware to see > if it helps with the regressions you mentioned? Sure. -- Maxim Kuvyrkov www.linaro.org

Re: [PATCH 0/6] Improve -fprefetch-loop-arrays in general and for AArch64 in particular

2017-02-28 Thread Maxim Kuvyrkov
> On Feb 20, 2017, at 5:38 PM, Kyrill Tkachov > wrote: > > Hi Maxim, > > On 30/01/17 11:24, Maxim Kuvyrkov wrote: >> This patch series improves -fprefetch-loop-arrays pass through small fixes >> and tweaks, and then enables it for several AArch64 cores. >>

Re: [PATCH] [AArch64] support -mfentry feature for arm64

2016-04-14 Thread Maxim Kuvyrkov
, and that the kernel can't update that atomically. However if >-mfentry approach is used, then we need to update only 4 (or 8) bytes of the >pad, and we avoid the atomicity problem. Therefore, [unless there is a clever multi-stage update process to atomically change NOPs to whatev

Re: [PATCH v2] add -fprolog-pad=N option to c-family

2016-10-04 Thread Maxim Kuvyrkov
void); > extern reg_class_t default_preferred_reload_class (rtx, reg_class_t); > extern reg_class_t default_preferred_output_reload_class (rtx, reg_class_t); > diff --git a/gcc/testsuite/c-c++-common/attribute-prolog_pad-1.c > b/gcc/testsuite/c-c++-common/attribute-prolog_pad-1.c > new file

Re: [PATCH] Fix computation of register limit for -fsched-pressure

2016-10-17 Thread Maxim Kuvyrkov
_regs_num[CL]; but not in subtracting number of such registers from the number of total available hard registers. Am I missing something? Also, could you share the testcase that you used to investigate the problem with register-aware scheduling? I wonder if there is a problem lurking. Thank yo

Re: [PATCH] Fix computation of register limit for -fsched-pressure

2016-10-18 Thread Maxim Kuvyrkov
> On Oct 17, 2016, at 7:21 PM, Pat Haugen wrote: > > On 10/17/2016 08:17 AM, Maxim Kuvyrkov wrote: >>> The patch here, https://gcc.gnu.org/ml/gcc-patches/2014-10/msg01872.html, >>> attempted to scale down the register limit used by -fsched-pressure for the >>&

Re: [PATCH] Fix computation of register limit for -fsched-pressure

2016-10-18 Thread Maxim Kuvyrkov
> On Oct 18, 2016, at 1:27 PM, Maxim Kuvyrkov wrote: > >> >> On Oct 17, 2016, at 7:21 PM, Pat Haugen wrote: >> >> On 10/17/2016 08:17 AM, Maxim Kuvyrkov wrote: >>>> The patch here, https://gcc.gnu.org/ml/gcc-patches/2014-10/msg01872.html, >>&g

Re: [PATCH v2] add -fprolog-pad=N option to c-family

2016-12-06 Thread Maxim Kuvyrkov
> On Oct 5, 2016, at 12:45 AM, Maxim Kuvyrkov wrote: > >> On Sep 29, 2016, at 11:14 AM, Torsten Duwe wrote: >> >> In case anybody missed it, the Linux kernel side to make use >> of this has also been finished meanwhile. Of course it can not >> be accepte

Re: [PATCH v3] add -fprolog-pad=N,M option

2016-12-20 Thread Maxim Kuvyrkov
d for porting kernel live-patching to new architectures. Existing support for kernel live-patching in x86, s390 and sparc backends can be redirected to use -fprolog-pad= functionality and, thus, simplified. -- Maxim Kuvyrkov www.linaro.org > so I'll just comment on some style questions.

Re: [PATCH] add -fprolog-pad=N option to c-family

2016-04-28 Thread Maxim Kuvyrkov
s not trivial to implement, and has been what stopped me from finishing the patch. Your current patch is great for experiments for the kernel engineers to check if suggested approaches to code patching will work. Still, I prefer to implement LTO-friendly way of handling -fprolog-pad=N via fu

Re: [PATCH] add -fprolog-pad=N option to c-family

2016-04-28 Thread Maxim Kuvyrkov
adapted to nop-pad approach. If I remember correctly, recent versions of GCC and kernel for x86_64 generate NOPs, not the call sequence in the prologs when -mfentry is used. > > i'm not against nop-padding, but i think more evidence > is needed that the generalization is a good idea and > users can deal with the resulting issues. -- Maxim Kuvyrkov www.linaro.org

[PATCH, MIPS] Fix linking of applications with -msym32

2012-11-15 Thread Maxim Kuvyrkov
Richard, This is the GCC patch of the change to fix building executables with -msym32. It is a one-line change. See http://sourceware.org/ml/binutils/2012-11/msg00225.html for the main discussion. Thank you, -- Maxim Kuvyrkov CodeSourcery / Mentor Graphics gcc-msym32.ChangeLog

Re: [patch] PR55158 - segfault in sched-rgn.c

2012-12-06 Thread Maxim Kuvyrkov
here just to be safe. > +return; > + > + gcc_checking_assert (saved_last_basic_block == 0 > +|| (bb_state_array != NULL && bb_state != NULL)); > + Thanks, -- Maxim Kuvyrkov CodeSourcery / Mentor Graphics

Re: Fix PR57268

2013-05-29 Thread Maxim Kuvyrkov
2004 and now he will be more active in upstream development. Thank you, -- Maxim Kuvyrkov KugelWorks

Re: [testsuite, android] Disabling thread_local4.C and thread_local4g.C for Android.

2013-07-14 Thread Maxim Kuvyrkov
r, say, arm-linux-gnueabi which will use glibc for primary multilib, and bionic for secondary multilib.] I didn't test the attached patch, so please confirm that it behaves as expected before applying it. Thank you, -- Maxim Kuvyrkov KugelWorks 0001-Disable-tests-that-require-cancellation-when-using-B.patch Description: Binary data

Re: [PATCH] GOMP_CPU_AFFINITY fails with >1024 cores

2013-07-16 Thread Maxim Kuvyrkov
e how your patch fixes the problem. You write how and which architectures your patch was tested on. 5. You ping your submission every 2 weeks to one of the maintainers until they review your patch. Good luck! -- Maxim Kuvyrkov KugelWorks

Re: [testsuite, android] Disabling thread_local4.C and thread_local4g.C for Android.

2013-07-26 Thread Maxim Kuvyrkov
safe > to include that directly..) > > tested on x86_64_unknow_linux and on android device. > > Is it OK? OK. Thanks, -- Maxim Kuvyrkov www.kugelworks.com

[PATCH, libgcc] Fix licenses on several files

2013-07-28 Thread Maxim Kuvyrkov
branches: trunk, gcc-4_8-branch and gcc-4_7-branch. Thank you, -- Maxim Kuvyrkov www.kugelworks.com 0001-Fix-licenses-on-several-libgcc-files.patch Description: Binary data

Re: [PATCH, libgcc] Fix licenses on several files

2013-07-29 Thread Maxim Kuvyrkov
n 30/07/2013, at 2:06 AM, Ondřej Bílka wrote: > On Mon, Jul 29, 2013 at 12:10:42PM +0100, Marcus Shawcroft wrote: >> On 28/07/13 23:03, Maxim Kuvyrkov wrote: >>> While verifying license compliance for GCC and its libraries I noticed that >>> several libgcc files that

Re: [testsuite, Android] Add to pr56407.c

2013-08-05 Thread Maxim Kuvyrkov
both the link line from testsuite log and verbose output of linking (obtainable by adding "-v" to the link line). Thank you, -- Maxim Kuvyrkov www.kugelworks.com

Re: [PATCH] Redesign pthread in LIB_SPEC for systems without libpthread

2013-08-15 Thread Maxim Kuvyrkov
t; > #define ANDROID_LIB_SPEC \ > - "%{!static: -ldl}" > + "%{!static: -ldl}" \ > + "%{pthread: -lc}" Add a comment to explain why -pthread option triggers -lc for Android. Please post the updated patch along with notes on which targets you have tested it. Test coverage should include at least x86_64-linux-gnu and one of android targets. Thank you, -- Maxim Kuvyrkov www.kugelworks.com

Re: [PATCH] Redesign pthread in LIB_SPEC for systems without libpthread

2013-08-16 Thread Maxim Kuvyrkov
imple > test with -pthread. Thanks for good test coverage. I assume you have also tested a non-android Linux target? The patch is OK if adjusted to the comments above (or good arguments provided why your current patch is more straigh-forward). Thank you, -- Maxim Kuvyrkov www.kugelworks.com

Re: [PATCH] Redesign pthread in LIB_SPEC for systems without libpthread

2013-08-19 Thread Maxim Kuvyrkov
On 19/08/2013, at 11:09 PM, Pavel Chupin wrote: ... > > Thanks. I'm OK with your suggestions. > Please see adjusted patch attached. All good, thanks! -- Maxim Kuvyrkov www.kugelworks.com

Re: [PING^5] PR 54805: __gthread_tsd* in vxlib-tls.c

2013-03-19 Thread Maxim Kuvyrkov
On 19/03/2013, at 3:38 PM, rbmj wrote: > On 16-Feb-13 23:21, Maxim Kuvyrkov wrote: >> On 14/02/2013, at 10:18 AM, rbmj wrote: >>> Here's the updated, (trivial) patch. >> >> Thanks. I'll apply this once 4.8 branches and trunk is back into >> develop

Re: [PING^5] PR 54805: __gthread_tsd* in vxlib-tls.c

2013-03-20 Thread Maxim Kuvyrkov
On 20/03/2013, at 1:35 AM, rbmj wrote: > On 19-Mar-13 03:04, Maxim Kuvyrkov wrote: >> >> Will commit to trunk once the server is up. The patch is now committed. >> >> Regarding 4.8, we should've really tried to work it out earlier. If you >> want to pur

Re: [RFC PATCH] Implementing ifunc target hook

2013-03-26 Thread Maxim Kuvyrkov
he variable is a good practice to handle empty definitions of shell variables (`if test = yes;` will produce an error). Oh, and in the changelog you have a typo "linux-androids.h" -> "linux-android.h". Otherwise OK. Thanks, -- Maxim Kuvyrkov KugelWorks

Re: [PING^5] PR 54805: __gthread_tsd* in vxlib-tls.c

2013-03-26 Thread Maxim Kuvyrkov
On 25/03/2013, at 10:15 PM, Richard Biener wrote: > On Thu, Mar 21, 2013 at 12:22 AM, Maxim Kuvyrkov wrote: ... >> Richard, >> >> As release manager, do you have any objections to backporting this patch to >> 4.8 branch? It affects only VxWorks targets and it is qu

[PATCH, trivial] Make type_hash_lookup, type_hash_add static

2013-04-09 Thread Maxim Kuvyrkov
x-gnu. Thanks, -- Maxim Kuvyrkov KugelWorks gcc-static-type-hash.ChangeLog Description: Binary data gcc-static-type-hash.patch Description: Binary data

[PATCH, sched] Fix sched_insn debug counter

2014-05-19 Thread Maxim Kuvyrkov
sched_insn debug counter. OK to apply? Also, just as heads up, this patch is the first in a series of ~10 patches to cleanup scheduler and improve it for ARM. -- Maxim Kuvyrkov www.linaro.org 0001-Fix-sched_insn-debug-counter.patch Description: Binary data

[PATCH, sched]

2014-05-19 Thread Maxim Kuvyrkov
This patch improves debug printouts for scheduling passes. Tested on arm-linux-gnueabihf and x86_64-linux-gnu. OK to apply? Thank you, -- Maxim Kuvyrkov www.linaro.org 0002-Improve-scheduling-debug-output.patch Description: Binary data

[PATCH, ia64] Remove IA64 speculation tweaking flags

2014-05-19 Thread Maxim Kuvyrkov
-gnu cc1. OK to apply? Thank you, -- Maxim Kuvyrkov www.linaro.org 0003-Remove-IA64-speculation-tweaking-flags.patch Description: Binary data

[PATCH, sched] Cleanup and improve multipass_dfa_lookahead_guard

2014-05-19 Thread Maxim Kuvyrkov
Tested on x86_64-linux-gnu, arm-linux-gnueabihf, and by building ia64-linux-gnu cc1. Changes to PowerPC were seriously eyeballed. If maintainers so to wish, I will carry out any additional testing. OK to apply? Thank you, -- Maxim Kuvyrkov www.linaro.org 0004-Cleanup-

Re: [PATCH] Install sanitizer public headers (fix for PR sanitizer/61100)

2014-05-20 Thread Maxim Kuvyrkov
> Bootstrapped and regtested on x64. > > -Y > The new test fails on x86_64 Ubuntu 12.04 native build: /home/maxim-kuvyrkov/build/gcc-native-e-m-s-f/gcc/xgcc -B/home/maxim-kuvyrkov/build/gcc-native-e-m-s-f/gcc/ /home/maxim-kuvyrkov/build/src/gcc-e-m-s-f/gcc/testsuite/c-c++-common/asan/asan

Re: [PATCH, sched] Cleanup and improve multipass_dfa_lookahead_guard

2014-05-23 Thread Maxim Kuvyrkov
e] Fixed, sorry about the breakage. The patch is trivial. Thank you, -- Maxim Kuvyrkov www.linaro.org 2014-05-23 Maxim Kuvyrkov Fix bootstrap error on ia64 * config/ia64/ia64.c (ia64_first_cycle_multipass_dfa_lookahead_guard): Return default value. Index:

Re: [PATCH][sched-deps] Generalise usage of macro fusion to work on any two insns

2014-07-10 Thread Maxim Kuvyrkov
insn_set = single_set (insn); > + > + prev = prev_nonnote_nondebug_insn (insn); > + if (prev > + && insn_set > + && single_set (prev) > + && modified_in_p (SET_DEST (insn_set), prev) Invert the check (as done in the upper if-clause) and cut it here. Then you can use a single unified if (targetm.sched.macro_fusion_pair_p (prev, insn)) SCHED_GROUP_P (insn) = 1; as the final statement of the function. Thank you, -- Maxim Kuvyrkov www.linaro.org

[PATCH] Fix INSN_TICK heuristic for SCHED_PRESSURE

2014-07-13 Thread Maxim Kuvyrkov
ux. OK to apply? More fixes to SCHED_PRESSURE_MODEL coming soon. Thank you, -- Maxim Kuvyrkov www.linaro.org 0001-Fix-INSN_TICK-heuristic-for-SCHED_PRESSURE.patch Description: Binary data

[PATCH] Add statistical printout of rank_for_schedule decisions

2014-07-13 Thread Maxim Kuvyrkov
according to sched verbosity. This patch helped me track down several bugs in rank_for_schedule that result is stupid scheduling decisions. Bootstrapped and tested on x86_64-linux-gnu. OK to apply? Thank you, -- Maxim Kuvyrkov www.linaro.org 0002-Add-statistical-printout-of

Re: [PATCH] Fix INSN_TICK heuristic for SCHED_PRESSURE

2014-07-14 Thread Maxim Kuvyrkov
On Jul 14, 2014, at 8:05 PM, Steven Bosscher wrote: > On Mon, Jul 14, 2014 at 6:12 AM, Maxim Kuvyrkov wrote: >> Hi, >> >> This patch fixes 2 of the [several] problems in rank_for_schedule heuristics >> for SCHED_PRESSURE_MODEL. SCHED_PRESSURE_MODEL is used for first

Re: [PATCH][sched-deps] Generalise usage of macro fusion to work on any two insns

2014-07-24 Thread Maxim Kuvyrkov
hov wrote: >>>> On 10/07/14 22:53, Maxim Kuvyrkov wrote: >>>>> The patch looks good to me, but some cleanup suggestions below. >>>> Thanks, here's an updated patch. >>>> How's this? >>> You need to remove 'if (targetm. ...) S

Re: [AArch64] Make sure start callee-save offset for D registers aligned

2014-07-24 Thread Maxim Kuvyrkov
the offset anyway. The patch seems OK to me (provided no regressions on the testsuite), but you need to get an ACK from an official maintainer. Thank you, -- Maxim Kuvyrkov www.linaro.org

Re: [PATCH] Add statistical printout of rank_for_schedule decisions

2014-08-03 Thread Maxim Kuvyrkov
On Jul 17, 2014, at 5:34 AM, Jeff Law wrote: > On 07/13/14 22:17, Maxim Kuvyrkov wrote: >> Hi, >> >> This patch adds dump printouts for scheduling heuristics in >> rank_for_schedule. Rank_for_schedule is one of the cornerstones of >> haifa scheduler, yet it

Register at the GSoC website to rate projects

2014-03-14 Thread Maxim Kuvyrkov
2 years (and, "yes", I know this is not the fairest metric). Script used: $ git log "--pretty=format:%an" | head -n 12000 | awk '{ a[$1]++; } END { for (i in a) print a[i] " " i; }' | sort -g | tail -n 50 [2] http://gcc.gnu.org/wiki/SummerOfCode -- Maxim Kuvyrkov www.linaro.org

Re: [PATCH][AArch64] Implement %c output template

2014-03-20 Thread Maxim Kuvyrkov
>through inline assembly -- is this intended use-case or an [unsupported] >side-effect? If "yes" then it, probably, needs documentation in doc/tm.texi or elsewhere. Thank you, -- Maxim Kuvyrkov www.linaro.org

[PATCH, wwwdocs] Add a note for performance improvements for MIPS/XLP

2012-12-18 Thread Maxim Kuvyrkov
The attached patch adds a release note for performance improvements for Broadcom XLP processors (MIPS architecture) that went into GCC 4.8. OK to apply? Thanks, -- Maxim Kuvyrkov CodeSourcery / Mentor Graphics xlp-performance.patch Description: Binary data

Re: [RFC PATCH] Implementing ifunc target hook

2012-12-27 Thread Maxim Kuvyrkov
TIVE) && HAVE_GNU_INDIRECT_FUNCTION > - ASM_OUTPUT_TYPE_DIRECTIVE > - (asm_out_file, IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (decl)), > - IFUNC_ASM_TYPE); > +#if defined (ASM_OUTPUT_TYPE_DIRECTIVE) > + if (TARGET_HAS_IFUNC) > + ASM_OUTPUT_TYPE_DIRECTIVE > + (asm_out_file, IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (decl)), > +IFUNC_ASM_TYPE); > + else > + error_at (DECL_SOURCE_LOCATION (decl), > + "ifunc is not supported on this target"); > #else >error_at (DECL_SOURCE_LOCATION (decl), > "ifunc is not supported in this configuration"); Please use same error message in both error cases. It seems you can just convert '#else' preprocessor clause into 'else' code clause without touching the error_at() statement beyond indentation updates. Thanks, -- Maxim Kuvyrkov CodeSourcery / Mentor Graphics

[PATCH, committed] Update MAINTAINERS

2013-01-01 Thread Maxim Kuvyrkov
I've checked in the following patch to update my email address in MAINTAINERS. -- Maxim Kuvyrkov MAINTAINERS-Update-my-email.ChangeLog Description: Binary data MAINTAINERS-Update-my-email.patch Description: Binary data

Re: [RFC PATCH] Implementing ifunc target hook

2013-01-02 Thread Maxim Kuvyrkov
ECT_FUNCTION; > +} > + > /* NULL if INSN insn is valid within a low-overhead loop, otherwise returns > an error message. > > diff --git a/gcc/targhooks.h b/gcc/targhooks.h > index bd7d4bc..8622d58 100644 > --- a/gcc/targhooks.h > +++ b/gcc/targhooks.h > @@ -73,6 +73,8 @@ extern bool targhook_float_words_big_endian (void); > extern bool default_decimal_float_supported_p (void); > extern bool default_fixed_point_supported_p (void); > > +extern bool default_have_ifunc (void); > + > extern const char * default_invalid_within_doloop (const_rtx); > > extern tree default_builtin_vectorized_function (tree, tree, tree); > diff --git a/gcc/varasm.c b/gcc/varasm.c > index 7d083fd..dd677a4 100644 > --- a/gcc/varasm.c > +++ b/gcc/varasm.c > @@ -5489,14 +5489,15 @@ do_assemble_alias (tree decl, tree target) > } >if (lookup_attribute ("ifunc", DECL_ATTRIBUTES (decl))) > { > -#if defined (ASM_OUTPUT_TYPE_DIRECTIVE) && HAVE_GNU_INDIRECT_FUNCTION > - ASM_OUTPUT_TYPE_DIRECTIVE > - (asm_out_file, IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (decl)), > - IFUNC_ASM_TYPE); > -#else > - error_at (DECL_SOURCE_LOCATION (decl), > - "ifunc is not supported in this configuration"); > +#if defined (ASM_OUTPUT_TYPE_DIRECTIVE) > + if (targetm.has_ifunc ()) > + ASM_OUTPUT_TYPE_DIRECTIVE > + (asm_out_file, IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (decl)), > +IFUNC_ASM_TYPE); > + else > #endif > + error_at (DECL_SOURCE_LOCATION (decl), > + "ifunc is not supported on this target"); > } I like how you arranged #if-else-#endif to have a single error path. Thank you, -- Maxim Kuvyrkov

Re: [RFC PATCH] Implementing ifunc target hook

2013-01-10 Thread Maxim Kuvyrkov
> +You should have received a copy of the GNU General Public License > +along with GCC; see the file COPYING3. If not see > +<http://www.gnu.org/licenses/>. */ > + > +#include "config.h" > +#include "system.h" > +#include "coretypes.h" >

Re: [RFC PATCH] Implementing ifunc target hook

2013-01-14 Thread Maxim Kuvyrkov
s.h b/gcc/config/linux-protos.h > new file mode 100644 > index 000..aae1d28 > --- /dev/null > +++ b/gcc/config/linux-protos.h > @@ -0,0 +1,22 @@ > +/* Prototypes. > + Copyright (C) 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2010, 2011, > + 2012, 2013 "Copyright (C) 2013." > --- /dev/null > +++ b/gcc/config/t-linux-android > @@ -0,0 +1,23 @@ > +# Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, > 2013 "Copyright (C) 2013." Thanks! -- Maxim Kuvyrkov

[google gcc-4_7] Inlining and devirtualization tests

2013-01-15 Thread Maxim Kuvyrkov
ts 2 and 3. OK to apply? Thanks, -- Maxim Kuvyrkov 0001-Inlining-and-devirtualizaion-tests.patch Description: Binary data

Re: [google gcc-4_7] Inlining and devirtualization tests

2013-01-16 Thread Maxim Kuvyrkov
particular testcase. As inlining and devirtualization analysis improves, these tests will start passing. Thanks, -- Maxim Kuvyrkov

Re: [PING^5] PR 54805: __gthread_tsd* in vxlib-tls.c

2013-01-17 Thread Maxim Kuvyrkov
ructure which records all of the active keys. > > @@ -150,7 +158,7 @@ static __gthread_once_t tls_init_guard = > need to read tls_keys.dtor[key] atomically. */ > > static void > -tls_delete_hook (void *tcb ATTRIBUTE_UNUSED) > +tls_delete_hook (void *tcb) Don't remove ATTRIBUTE_UNUSED. TCB was and will remain unused #ifdef __RTP__. > { >struct tls_data *data; >__gthread_key_t key; > @@ -185,7 +193,7 @@ tls_delete_hook (void *tcb ATTRIBUTE_UNU > #ifdef __ > RTP > __ >__gthread_leave_tls_dtor_context (); > #else > - __gthread_leave_tsd_dtor_context (); > + __gthread_leave_tsd_dtor_context (tcb); > #endif OK. Thanks, -- Maxim Kuvyrkov

Re: [PING^5] PR 54805: __gthread_tsd* in vxlib-tls.c

2013-01-18 Thread Maxim Kuvyrkov
sarily is unused. It's fine to have this attribute set on variables that are used under certain preprocessor configurations. Thanks, -- Maxim Kuvyrkov

[PATCH, committed] Update my email address

2013-01-24 Thread Maxim Kuvyrkov
I've updated my email address. KugelWorks is open for business. -- Maxim Kuvyrkov KugelWorks 0001-MAINTAINERS-Update-my-email.patch Description: Binary data

Re: [PING^5] PR 54805: __gthread_tsd* in vxlib-tls.c

2013-02-16 Thread Maxim Kuvyrkov
On 14/02/2013, at 10:18 AM, rbmj wrote: > On 18-Jan-13 20:35, Maxim Kuvyrkov wrote: >> On 19/01/2013, at 9:18 AM, rbmj wrote: >> >>>>> -150,7 +158,7 @@ static __gthread_once_t tls_init_guard = >>>>> need to read tls_keys.dtor[k

Re: [PATCH] Add capability to run several iterations of early optimizations

2011-10-17 Thread Maxim Kuvyrkov
On 13/10/2011, at 12:58 AM, Richard Guenther wrote: > On Wed, Oct 12, 2011 at 8:50 AM, Maxim Kuvyrkov > wrote: >> The following patch adds new knob to make GCC perform several iterations of >> early optimizations and inlining. >> >> This is for dont-care-about

Re: [PATCH, PR43814] Assume function arguments of pointer type are aligned.

2011-10-18 Thread Maxim Kuvyrkov
ece of rope to hang themselves; for others it will produce good benefits of better performance. [Disclaimer: I've put significant amount of my time into investigation of this problem and hate to see it all go to waste :-).] Thank you, -- Maxim Kuvyrkov CodeSourcery / Mentor Graphics

Re: [PATCH] Account for devirtualization opportunities in inliner

2011-10-19 Thread Maxim Kuvyrkov
On 28/09/2011, at 4:56 PM, Maxim Kuvyrkov wrote: > Jan, > > The following patch starts a series of patches which improve devirtualization > optimizations in GCC. > > This patch builds on ipa-cp.c and ipa-prop.c infrastructure for analyzing > parameters and jump fun

Re: [PATCH] Don't assume that constants can clobber vtbl

2011-10-19 Thread Maxim Kuvyrkov
return false; > > Why is it not enough to catch integer constants? It appears to be enough. The patch I sent was developed against GCC 4.6 and I didn't notice your change when updated it for 4.7. Thanks for fixing this. -- Maxim Kuvyrkov CodeSourcery / Mentor Graphics

Re: [PATCH] Add capability to run several iterations of early optimizations

2011-10-27 Thread Maxim Kuvyrkov
lt. The only failures are 5 scan-dump tests that are due to more functions being inlined than expected. With iterative optimizations disabled there is no change. I've kicked off SPEC2000/SPEC2006 benchmark runs to see the performance effect of the patch, and those will be posted in the same Google Docs spreadsheet in several days. OK for trunk? -- Maxim Kuvyrkov CodeSourcery / Mentor Graphics fsf-gcc-iter-eipa-2.ChangeLog Description: Binary data fsf-gcc-iter-eipa-2.patch Description: Binary data

[PATCH] Code quality tests for inlining and devirtualization optimizations

2011-10-27 Thread Maxim Kuvyrkov
ns, I will commit this patch one Martin's patch goes in. Thank you, -- Maxim Kuvyrkov CodeSourcery / Mentor Graphics fsf-gcc-inline-devirt-tests.ChangeLog Description: Binary data fsf-gcc-inline-devirt-tests.patch Description: Binary data

Re: [PATCH, devirtualization] Detect the new type in type change detection

2011-10-27 Thread Maxim Kuvyrkov
On 27/10/2011, at 12:22 PM, Martin Jambor wrote: > Hi, > > I've been asked by Maxim Kuvyrkov to revive the following patch which > has not made it to 4.6. Currently, when type based devirtualization > detects a potential type change, it simply gives up on gathering any

Re: [PATCH] Account for devirtualization opportunities in inliner

2011-10-27 Thread Maxim Kuvyrkov
parameters, and use them. */ > + NULL, NULL); > > Remapping should not be needed here - the jump functions are merged after > marking edge inline, so jump > functions in inlined functions actually reffe

Re: [PATCH] Distribute inliner's size_time data across entries with similar predicates

2011-10-27 Thread Maxim Kuvyrkov
nce fuction modified to > accept > only predicates such that the new predicate is implied by them. If you are > willing to play with this, I have no problem with going for this. Yes, favoring predicates that already imply the new one is a good suggestion. Thank you, -- Maxim Kuvyrkov CodeSourcery / Mentor Graphics

Re: [PATCH] Account for devirtualization opportunities in inliner

2011-10-28 Thread Maxim Kuvyrkov
ut to work just fine. Probably, that was a bug that was fixed since. The patch bootstraps and passes regtest. Comments? OK for trunk? -- Maxim Kuvyrkov CodeSourcery / Mentor Graphics On 28/10/2011, at 3:43 PM, Maxim Kuvyrkov wrote: > On 20/10/2011, at 10:11 PM, Jan Hubicka wrote: &

Re: [PATCH] Add capability to run several iterations of early optimizations

2011-10-28 Thread Maxim Kuvyrkov
On 28/10/2011, at 11:43 PM, Richard Guenther wrote: > On Fri, Oct 28, 2011 at 1:05 AM, Maxim Kuvyrkov > wrote: >> >> OK for trunk? > > diff --git a/gcc/cgraph.c b/gcc/cgraph.c > index f056d3d..4738b28 100644 > --- a/gcc/cgraph.c > +++ b/

Re: [PATCH] Fix early inliner inlining uninlinable functions

2011-10-28 Thread Maxim Kuvyrkov
edge->call_stmt_cannot_inline_p > + = gimple_call_cannot_inline_p (edge->call_stmt); Wouldn't ipa_make_edge_direct or cgraph_make_edge_direct be a better place for this? Thank you, -- Maxim Kuvyrkov CodeSourcery / Mentor Graphics

Re: [PATCH] Add capability to run several iterations of early optimizations

2011-11-07 Thread Maxim Kuvyrkov
s feature the world would be a simpler place for us to live in, as we would not have to know and care about regressions and missed opportunities in GCC's optimizations. But, really, that would've been a boring world :-). I feel that dropping this feature will cause the problems to stay unnoticed and never get fixed. [*] https://docs.google.com/spreadsheet/ccc?key=0AvK0Y-Pgj7bNdFBQMEJ6d3laeFdvdk9lQ1p0LUFkVFE Thank you, -- Maxim Kuvyrkov CodeSourcery / Mentor Graphics

Re: [PATCH] Account for devirtualization opportunities in inliner

2011-11-08 Thread Maxim Kuvyrkov
Ping. -- Maxim Kuvyrkov www.trivialbugs.com On 28/10/2011, at 9:01 PM, Maxim Kuvyrkov wrote: > Jan, > > Attached is the updated patch. The only major change is the addition of > indirect_call_cost to size and time weights. I've set the size cost of > indirect call t

Re: [PATCH, Android] Runtime stack protector enabling for Android target

2012-08-08 Thread Maxim Kuvyrkov
OK'd them for x86 ... OK, provided that the patches in the above threads apply without conflicts. If there are conflicts, please repost for review. Thanks, -- Maxim Kuvyrkov CodeSourcery / Mentor Graphics

Re: [PATCH, MIPS] 74k madd scheduler tweaks

2012-08-13 Thread Maxim Kuvyrkov
madd") > (set_attr "accum_in" "3") > (set_attr "mode""SI") > (set_attr "length" "4,8")]) > > Then mips_linked_madd_p can use get_attr_accum_in to check for chains. > I thought I'll butt in since I

Re: Scheduler: Save state at the end of a block

2012-08-13 Thread Maxim Kuvyrkov
Does it look OK to you? Thank you, -- Maxim Kuvyrkov CodeSourcery / Mentor Graphics

Re: Scheduler: Allow breaking dependencies by modifying patterns

2012-08-13 Thread Maxim Kuvyrkov
ew this patch, and then the scheduler maintainers will have an option of accepting my word for it, or doing a second review. I have reviewed earlier versions of this patch, so I know I'm happy with the general structure of the optimization. -- Maxim Kuvyrkov CodeSourcery / Mentor Graphics

Re: PATCH: PR bootstrap/54209: [4.8 Regression] Failed to build gcc for Android/x86

2012-08-14 Thread Maxim Kuvyrkov
uct dl_phdr_info *info, size_t size, void *data), void *data); --- I'm not 100% sure where the above link.h comes from for MIPS, but since it's not present in Bionic sources, my guess is kernel's arch/mips/include directory. Checking ... No, not from the kernel s

Re: [PATCH, MIPS] 74k madd scheduler tweaks

2012-08-14 Thread Maxim Kuvyrkov
up. Fixed by adding if (recog_memoized (in_insn) < 0) return false; at the beginning of mips_linked_madd_p. Richard, thanks for review, and thanks Sandra for testing the patch. -- Maxim Kuvyrkov CodeSourcery / Mentor Graphics

Re: Scheduler: Allow breaking dependencies by modifying patterns

2012-08-15 Thread Maxim Kuvyrkov
or type. This field is superseded by STATUS below. > + Though, it is still in place because some targets use it. */ > + ENUM_BITFIELD(reg_note) type:6; > ... is superseded by STATUS *above*. -- Maxim Kuvyrkov CodeSourcery / Mentor Graphics

[PATCH] Fix bug in scheduler's handling of DEBUG_INSNs

2012-08-23 Thread Maxim Kuvyrkov
, I understand that such a change is not trivial to implement and that the current implementation has a great argument for it -- that it works.] Tested on mips-linux-gnu with no regressions. OK to apply? Thank you, -- Maxim Kuvyrkov CodeSourcery / Mentor Graphics sched-deps-fix.ChangeLog

[PATCH, M68K] Fix ICE from scheduler improvement

2012-09-03 Thread Maxim Kuvyrkov
longer holds true. Tested by building a ColdFire toolchain. OK to apply? Thank you, -- Maxim Kuvyrkov Mentor Graphics gcc-m68k-sched_ib.ChangeLog Description: Binary data gcc-m68k-sched_ib.patch Description: Binary data

Re: [PATCH, M68K] Fix ICE from scheduler improvement

2012-09-04 Thread Maxim Kuvyrkov
On 4/09/2012, at 7:57 PM, Andreas Schwab wrote: > Maxim Kuvyrkov writes: > >> 2012-09-03 Maxim Kuvyrkov >> >> * config/m68k/m68k.c (m68k_sched_dfa_post_advance_cycle): Fix ICE >> caused by "save scheduler state" patch. > > The cha

Re: Scheduler: Allow breaking dependencies by modifying patterns

2012-09-12 Thread Maxim Kuvyrkov
I thought > that Maxim writes his comments first. I reviewed the patch in http://gcc.gnu.org/ml/gcc-patches/2012-08/msg01028.html (comments were similar to yours), but didn't CC you. Anyway, thanks for the review! -- Maxim Kuvyrkov CodeSourcery / Mentor Graphics

Re: [PATCH 2/3] Add XLP-specific atomic instructions and tweaks.

2012-06-13 Thread Maxim Kuvyrkov
On 14/06/2012, at 6:50 AM, Richard Sandiford wrote: > Maxim Kuvyrkov writes: >> diff --git a/gcc/config/mips/sync.md b/gcc/config/mips/sync.md >> index 604aefa..ac953b5 100644 >> --- a/gcc/config/mips/sync.md >> +++ b/gcc/config/mips/sync.md >> @@ -607,10 +607

Re: [PATCH 1/3] Add atomic_compare_and_swap, atomic_exchange and atomic_fetch_add patterns.

2012-06-13 Thread Maxim Kuvyrkov
On 14/06/2012, at 6:33 AM, Richard Sandiford wrote: > Looks good, thanks. Just a couple of silly comments... > > Maxim Kuvyrkov writes: >> +/* Subroutines of the mips_process_sync_loop. >> + Emit barriers as needed for the memory MODEL. */

Re: [PATCH 3/3] Avoid emitting useless instructions in mips_process_sync_loop.

2012-06-13 Thread Maxim Kuvyrkov
On 14/06/2012, at 6:59 AM, Richard Sandiford wrote: > Maxim Kuvyrkov writes: >> + /* Don't bother setting returns that are never used. */ >> + if (cmp && find_reg_note (insn, REG_UNUSED, cmp)) >> +cmp = 0; >> + if (required_oldval &&

[PATCH, TileGX] Committed fix for a typo bug

2012-06-14 Thread Maxim Kuvyrkov
Walter, While working on atomics for a different target, I've noticed below typo bug in TileGX. Patch checked in as obvious. Thank you, -- Maxim Kuvyrkov CodeSourcery / Mentor Graphics fsf-gcc-tile-sync.patch Description: Binary data

[PATCH] Unify emit_{pre,post}_atomic_barrier across Alpha, ARM, MIPS and TileGX

2012-06-14 Thread Maxim Kuvyrkov
would appreciate target maintainers to cast a close look at the changes for their targets. The changes are simple, but you can never eliminate typo mistakes. Thank you, -- Maxim Kuvyrkov CodeSourcery / Mentor Graphics 0001-Unify-emit_-pre-post-_atomic_barrier-across-Alpha-AR.patch Description: B

Re: [PATCH 1/3] Add atomic_compare_and_swap, atomic_exchange and atomic_fetch_add patterns.

2012-06-14 Thread Maxim Kuvyrkov
On 15/06/2012, at 8:51 AM, Hans-Peter Nilsson wrote: > On Thu, 14 Jun 2012, Maxim Kuvyrkov wrote: >> On 14/06/2012, at 6:33 AM, Richard Sandiford wrote: >>> Maxim Kuvyrkov writes: >>>> +/* Subroutines of the mips_process_sync_loop. >>>> + Em

Re: [PATCH 2/3] Add XLP-specific atomic instructions and tweaks.

2012-06-14 Thread Maxim Kuvyrkov
On 14/06/2012, at 7:01 AM, Richard Sandiford wrote: > Maxim Kuvyrkov writes: >> ... >> After a chat with Bernd Schmidt, this is not a bug. I've already fixed the >> patch per yours and Bernd's instructions. Do you want to look through an >> updated p

Re: [PATCH 2/3] Add XLP-specific atomic instructions and tweaks.

2012-06-18 Thread Maxim Kuvyrkov
On 16/06/2012, at 7:45 PM, Richard Sandiford wrote: > Maxim Kuvyrkov writes: >> Updated patch attached. Any further comments? > > It's due to my bad explanation, sorry, but this isn't what I meant. > The two main changes I was looking for were: > > 1) Your p

Re: [PATCH, MIPS] Add most common atomic patterns

2012-06-19 Thread Maxim Kuvyrkov
I've now checked these patches. Tom, thanks for great optimizing sync and atomic builtins for MIPS and XLP, and, Richard, thanks for the reviews and education on writing good .md descriptions. -- Maxim Kuvyrkov CodeSourcery / Mentor Graphics On 13/06/2012, at 5:50 PM, Maxim Kuvyrkov

Re: [PATCH] Unify emit_{pre,post}_atomic_barrier across Alpha, ARM, MIPS and TileGX

2012-06-19 Thread Maxim Kuvyrkov
On 15/06/2012, at 11:16 AM, Richard Henderson wrote: > On 2012-06-14 16:06, Maxim Kuvyrkov wrote: >> 2012-06-15 Maxim Kuvyrkov >> >> * emit-rtl.c (need_atomic_barrier_p): New function. >> * emit-rtl.h (need_atomic_barrier_p): Declare it. >> *

Re: [PATCH, Android] Runtime stack protector enabling for Android target

2012-07-09 Thread Maxim Kuvyrkov
)] > - "" > + "!(flag_android && OPTION_BIONIC)" > { > rtx flags = gen_rtx_REG (CCZmode, FLAGS_REG); > > @@ -18027,7 +18027,7 @@ >(match_operand:P 2 "memory_operand" "m")] > UNSPEC_SP_TEST)) >(clobber (match_scratch:P 3 "=&r"))] > - "" > + "!(flag_android && OPTION_BIONIC)" > "mov{}\t{%1, %3|%3, %1}\;xor{}\t{%2, %3|%3, %2}" > [(set_attr "type" "multi")]) Thanks, -- Maxim Kuvyrkov CodeSourcery / Mentor Graphics

Re: [PATCH][MIPS] NetLogic XLP scheduling

2012-07-15 Thread Maxim Kuvyrkov
ey'll need to sign a copyright assignment. >> Have they already done that? > > They have assigned the copyright to Mentor Graphics, so it should mean > the code can be contributed by us. That is correct. NetLogic developed the original xlp.md description, which Chung-Lin essentially rewrote. In any case, Mentor has copyright assignment for the original xlp.md specifically so that we can contribute this upstream. Thank you, -- Maxim Kuvyrkov CodeSourcery / Mentor Graphics

Re: [PATCH][MIPS] NetLogic XLP scheduling

2012-07-19 Thread Maxim Kuvyrkov
On 16/07/2012, at 6:56 PM, Maxim Kuvyrkov wrote: > On 16/07/2012, at 6:37 PM, Chung-Lin Tang wrote: > >> On 2012/7/16 12:28 AM, Richard Sandiford wrote: >>> Chung-Lin Tang writes: >>>> This patch adds scheduling support for the NetLogic XLP, including a n

<    1   2   3   4   >