Re: [gomp4] Random omp-low.c backporting

2015-11-10 Thread Nathan Sidwell
On 11/10/15 11:28, Thomas Schwinge wrote: Hi Nathan! On Tue, 10 Nov 2015 09:19:50 -0500, Nathan Sidwell wrote: I've committed this to backport a bunch of random bits from trunk to gomp4, and thereby reduce divergence. Yeah, I had some of these on my list, too. --- omp-low.c (rev

[ptx] partitioning optimization

2015-11-10 Thread Nathan Sidwell
suite. Perhaps something to be added later? nathan 2015-11-10 Nathan Sidwell * config/nvptx/nvptx.opt (moptimize): New flag. * config/nvptx/nvptx.c (nvptx_option_override): Set nvptx_optimize default. (nvptx_optimize_inner): New. (nvptx_process_pars): Call it when optimizing. * doc/invo

Re: [ptx] partitioning optimization

2015-11-11 Thread Nathan Sidwell
On 11/10/15 17:45, Ilya Verbin wrote: I've been unable to introduce a testcase for this. The difficulty is we want to check an rtl dump from the acceleration compiler, and there doesn't appear to be existing machinery for that in the testsuite. Perhaps something to be added later? I haven't tr

Re: [gomp4] Fix some broken tests

2015-11-11 Thread Nathan Sidwell
On 11/10/15 18:08, Cesar Philippidis wrote: On 11/10/2015 12:35 PM, Nathan Sidwell wrote: I've committed this to gomp4. In preparing the reworked firstprivate patch changes for gomp4's gimplify.c I discovered these testcases were passing by accident, and lacked a data clause. It

Re: OpenACC Firstprivate

2015-11-11 Thread Nathan Sidwell
On 11/11/15 03:04, Jakub Jelinek wrote: On Tue, Nov 10, 2015 at 09:12:55AM -0500, Nathan Sidwell wrote: + /* Create a local object to hold the instance + value. */ + tree inst = create_tmp_var + (TREE_TYPE (TREE_TYPE

[gomp4] Rework gimplifyier region flags

2015-11-11 Thread Nathan Sidwell
ll need to update them. nathan 2015-11-11 Nathan Sidwell * gimplify.c (enum gimplify_omp_var_data): Remove GOVD_FORCE_MAP. (omp_region_type): Use hex. Add OpenACC members. (omp_region_kind, acc_region_kind): Delete. (gimplify_omp_ctx): Remove region_kind & acc_region_kind fields. (new_omp_co

Re: [ptx] partitioning optimization

2015-11-11 Thread Nathan Sidwell
On 11/11/15 07:06, Bernd Schmidt wrote: On 11/10/2015 11:33 PM, Nathan Sidwell wrote: I've committed this patch to trunk. It implements a partitioning optimization for a loop partitioned over both vector and worker axes. We can elide the inner vector partitioning state propagation, if

Re: [gomp4] Fix some broken tests

2015-11-11 Thread Nathan Sidwell
On 11/11/15 09:50, Cesar Philippidis wrote: On 11/11/2015 05:40 AM, Nathan Sidwell wrote: On 11/10/15 18:08, Cesar Philippidis wrote: On 11/10/2015 12:35 PM, Nathan Sidwell wrote: I've committed this to gomp4. In preparing the reworked firstprivate patch changes for gomp4's gi

open acc default data attribute

2015-11-11 Thread Nathan Sidwell
firstprivate', which is what this patch implements. ok? nathan 2015-11-11 Nathan Sidwell gcc/ * gimplify.c (oacc_default_clause): New. (omp_notice_variable): Call it. gcc/testsuite/ * c-c++-common/goacc/data-default-1.c: New. libgomp/ * t

Re: open acc default data attribute

2015-11-12 Thread Nathan Sidwell
On 11/12/15 03:53, Jakub Jelinek wrote: + error ("%qE not specified in enclosing OpenACC %s construct", +DECL_NAME (lang_hooks.decls.omp_report_decl (decl)), rkind); + error_at (ctx->location, "enclosing OpenACC %s construct", rkind); I'd use %qs instead of %s. thanks,

[gomp4] remove c++ reference restriction

2015-11-12 Thread Nathan Sidwell
that need supporting (c) it's more work to not support them, by modifying the mappable_type hook. nathan 2015-11-12 Nathan Sidwell * langhooks-def.h (omp_mappable_type): Remove oacc arg. * langhooks.h (lhd_omp_mappable_type): Likewise. * langhooks.c (lhd_omp_mappable_type)

Re: [hsa 2/12] Modifications to libgomp proper

2015-11-12 Thread Nathan Sidwell
On 11/12/15 08:21, Thomas Schwinge wrote: Hi! so there is a way to deal with it, but you need to adjust all plugins. I'm confused -- didn't we agree that we don't need to maintain backwards compatibility in the libgomp <-> plugins interface? (Nathan?) Indeed, no need to deal with version

Re: open acc default data attribute

2015-11-12 Thread Nathan Sidwell
On 11/12/15 15:22, David Edelsohn wrote: Nathan, The ChangeLog was placed in the wrong files. gcc/ * gimplify.c (oacc_default_clause): New. (omp_notice_variable): Call it. Fixed. I placed the entries in the other files, but failed to cleanup the above one. natha

Fix openacc test

2015-11-13 Thread Nathan Sidwell
I've committed this patch to fixup an erroneously failing test. I'd changed the diagnostic, but not the matching test. While there, I noticed I should have been using 'inform' to emit a note, not another error. nathan 2015-11-13 Nathan Sidwell gcc/ * gimplify.c

Automatic openacc loop partitioning

2015-11-13 Thread Nathan Sidwell
he main event is in the target compiler, when we know which partitioning axes are available. A simple DFS walk of the loops assigns the innermost available partition to such loops. ok? nathan 2015-11-13 Nathan Sidwell gcc/ * gcc/omp-low.c (scan_sharing_clauses): A

[nvptx] complex vector reductions

2015-11-13 Thread Nathan Sidwell
nt patch, which I need to think about. nathan 2015-11-13 Nathan Sidwell gcc/ * config/nvptx/nvptx.c (nvptx_generate_vector_shuffle): Deal with complex types. libgomp/ * testsuite/libgomp.oacc-c-c++-common/reduction-cplx-dbl.c: New. * testsuite/libgomp.oacc-c-c++-common/reduction-

Fix openacc testcase

2015-11-13 Thread Nathan Sidwell
I've committed this trunk patch. This test case's loop is not parallelizeable, as it increments a (non-reduction) variable. It thus must be marked 'seq'. nathan 2015-11-13 Nathan Sidwell * testsuite/libgomp.oacc-c-c++-common/collapse-2.c: Sequential loop is sequent

Re: [ptx] partitioning optimization

2015-11-13 Thread Nathan Sidwell
On 11/11/15 09:19, Bernd Schmidt wrote: On 11/11/2015 02:59 PM, Nathan Sidwell wrote: That's not the problem. How to conditionally enable the test is the difficulty. I suspect porting something concerning accel_compiler from the libgomp testsuite is needed? Ma

Re: Automatic openacc loop partitioning

2015-11-13 Thread Nathan Sidwell
On 11/13/15 16:40, Bernd Schmidt wrote: + this_mask = (this_mask & -this_mask); Unnecessary parens. + if (!this_mask && noisy) +warning_at (loop->loc, 0, +"insufficient partitioning available to parallelize loop"); Should this really be an unconditional warning? Is

[gomp4, ptx] worker & gang complex double reductions

2015-11-16 Thread Nathan Sidwell
obj_ptr = write; cmp&swap (&lock_var, true, false); nathan 2015-11-16 Nathan Sidwell gcc/ * config/nvtpx/nvptx.c (global_lock_var): New. (nvptx_global_lock_addr): New. (nvptx_lockless_update): Add support for complex. libgcc/ * config/nvtpx/reduction.c: New. * config/nvptx/

Re: [gomp4, ptx] worker & gang complex double reductions

2015-11-17 Thread Nathan Sidwell
On 11/16/15 17:07, Nathan Sidwell wrote: I've committed this patch to the gomp4 branch. It adds support for worker and gang level complex double reductions. I was unsatisfied with that approach, so I've separated the two mechanisms into different functions with the attached p

Re: nvptx priority queues nonsupport in libgomp

2015-11-17 Thread Nathan Sidwell
ase apply to trunk. I've just tripped over it, you've saved me an investigation ... nathan -- Nathan Sidwell

Re: nvptx priority queues nonsupport in libgomp

2015-11-17 Thread Nathan Sidwell
On 11/17/15 12:23, Nathan Sidwell wrote: On 11/17/15 12:16, Cesar Philippidis wrote: This patch adds an empty priority_queues.c in libgomp for nvptx targets. Nvptx targets don't have sufficient support for a complete libgomp library, so we're only building a subset of it. And without

[PTX] OpenACC complex double reductions

2015-11-18 Thread Nathan Sidwell
tion as there's then no descheduling of the thread attempting to get the lock. Nvidia have confirmed that global locks do not suffer this problem. nathan 2015-11-18 Nathan Sidwell gcc/ * config/nvptx/nvptx.c (global_lock_var): New. (nvptx_global_lock_addr): New. (nvptx_lockless_update): Rec

Re: teach delay folding in c++ about OACC_LOOPs

2015-11-18 Thread Nathan Sidwell
On 11/18/15 10:14, Cesar Philippidis wrote: Jason, Your recent delay folding patch broke libgomp.oacc-c++/loop-auto-1.c. It looks like you forgot to handle OACC_LOOP in cp_fold_r. You probably didn't notice this because Nathan committed his auto acc loop patch just before you applied your patch.

[nvptx] SESE region optimization

2015-11-18 Thread Nathan Sidwell
regions. For the coloring algorithm we traverse them, but don't color outside the partitioned region (such traversal can never be within an SESE region). nathan 2015-11-18 Nathan Sidwell gcc/ * config/nvptx/nvptx.c (bb_pair_t, bb_pair_vec_t): New types. (pseudo_node_t, struct bracke

[ptx] remove workaround

2015-11-18 Thread Nathan Sidwell
I've committed this to trunk. Primarily it removes code working around the lack of default dimension setting -- I committed the defaulting code a little while ago and missed this piece. Fixed up some whitespace and ARG_UNUSED that I noticed along the way. nathan 2015-11-18 Nathan Si

[gomp4] backport ptx changes from trunk

2015-11-18 Thread Nathan Sidwell
I've committed this to gomp4 branch. It removes some extraneous pieces from nvptx.c and backports comments and some minor reworking that got applied to trunk. nathan (nvptx_neuter_pars): Backport from trunk. Index: gcc/config/nvptx/nvptx.c ==

[ptx] immediate operands

2015-11-19 Thread Nathan Sidwell
The atomic instructions can take immediate operands. Applied to trunk. nathan 2015-11-19 Nathan Sidwell * config/nvptx/nvptx.md (atomic_compare_and_swap_1, atomic_exchange): Input values can be immediates. Index: gcc/config/nvptx/nvptx.md

Openacc reduction tests

2015-11-19 Thread Nathan Sidwell
absolute, rather than relative, epsilon value. b) A min/max test assumed that that operator is well defined on complex numbers -- it's not. c) Another min/max test failed because the reduction was specified as + Fixed thusly, nathan 2015-11-19 Nathan Sidwell * libgomp.oacc-c-c++-c

[PTX] Add weak support

2015-11-19 Thread Nathan Sidwell
weak definitions too early, and have reported that to Nvidia. This affected gcc.dg/special/weak-2.c, which is thus skipped. nathan 2015-11-19 Nathan Sidwell gcc/ * config/nvptx/nvptx.h (SUPPORTS_WEAK): Define. * config/nvptx/nvptx.c (nvptx_write_function_decl): Support DECL

[ptx] overrride anchor hook

2015-11-20 Thread Nathan Sidwell
imization flags, we'll need a resanitize hook? Jakub? nathan 2015-11-20 Nathan Sidwell James Norris * config/nvptx/nvptx.c (nvptx_use_anchors_for_symbol_p): New. (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Override. Index: config/nvptx/nvptx.c ==

[ptx] Add more whitespace

2015-11-21 Thread Nathan Sidwell
In investigating some failures, I noticed the PTX output is rather dense. Committed this to add some blank lines before DECL and DEF lines. Also fixed a few formatting inconsistencies I noticed on the way. nathan 2015-11-21 Nathan Sidwell * config/nvptx/nvptx.c

[ptx] fix CLZ

2015-11-21 Thread Nathan Sidwell
This patch fixes CLZ. It always returns SImode, we should look at the input operand to determine the type. Fixes cc.c-torture/execute/builtin-bitops-1.c committed. nathan 2015-11-21 Nathan Sidwell * config/nvptx/nvptx.md (clz2): Use operand 1 for type. Index: config/nvptx/nvptx.md

Fix atomic test

2015-11-21 Thread Nathan Sidwell
I've committed this to fix gcc.dg/atomic-generic.c. It was calling memcmp without a declaration in scope, and passing a plain int as the 3rd argument instead of directly using sizeof or casting to size_t. This blew up PTX with a type mismatch. nathan 2015-11-21 Nathan Sidwell * g

[ptx] Fix sso tests

2015-11-23 Thread Nathan Sidwell
es lie for this kind of fix. Any objections? nathan 2015-11-23 Nathan Sidwell * gcc.dg/sso/dump.h: Force IO to be putchar function call on nvptx. Index: gcc/testsuite/gcc.dg/sso/dump.h === --- gcc/testsuite/gcc.dg/sso/dump.h (revis

Re: [ptx] Fix sso tests

2015-11-23 Thread Nathan Sidwell
On 11/23/15 15:41, Jeff Law wrote: In the 'put' function, why not just make all targets go through putchar? It's not like this is performance critical code and I don't think it compromises any of the tests, does it? I contemplated that, but wondered if someone would complain. I'm happy eith

Re: [ptx] Fix sso tests

2015-11-24 Thread Nathan Sidwell
On 11/24/15 00:01, Jeff Law wrote: On 11/23/2015 01:54 PM, Nathan Sidwell wrote: On 11/23/15 15:41, Jeff Law wrote: In the 'put' function, why not just make all targets go through putchar? It's not like this is performance critical code and I don't think it compromi

[PTX] Adjust mode splitting

2015-11-24 Thread Nathan Sidwell
tting should be done or not. Rather than have it return a count, I've changed it to return the inner mode, or VOIDmode for no splitting. nathan 2015-11-24 Nathan Sidwell * config/nvptx/nvptx.c (maybe_split_mode): Return new mode or VOIDmode, don't alter incoming mode. (nv

[PTX] Simplify function decl output

2015-11-25 Thread Nathan Sidwell
o need for that, decls and uses can be freely mixed, which is what this patch does. nathan 2015-11-25 Nathan Sidwell * config/nvptx/nvptx.c (walk_args_for_params): Delete. (nvptx_declare_function_name): Move assignments next to register declarations, and process params here. Index: confi

[PTX] number parameters from zero

2015-11-25 Thread Nathan Sidwell
The PTX backend needs to create names for incoming parameters etc. It was numbering these from 1, which apart from being mentally jarring, turns out is a little awkward. Fixed thusly. nathan 2015-11-25 Nathan Sidwell * config/nvptx/nvptx.md (load_arg_reg): Arg number constraint is &#

[PTX] simplify call emission

2015-11-26 Thread Nathan Sidwell
ged the fn name from nearly-but-not-quite acc_on_device, to 'foo', so it didn;t look superficially like a builtin test. nathan 2015-11-26 Nathan Sidwell * config/nvptx/nvptx.c (write_func_decl_from_insn): Replace callee arg with name. Don't deal with split regs. Tweak forma

[PTX] Another libcall patch

2015-11-27 Thread Nathan Sidwell
l hash manipulation out into a helper, in line with the other helpers, and added a helper to deal with looking through symbol refs. Finally expand_movdi had no need to register an fndecl itself -- it's already calling maybe_convert_symbolic_operand, which does that. nathan 2015-11-27 Nath

[PTX] address space patch

2015-11-27 Thread Nathan Sidwell
Also, the prototype is not needed externally. nathan 2015-11-27 Nathan Sidwell * config/nvptx/nvptx-protos.h (nvptx_addr_space_from_address): Don't declare. * config/nvptx/nvptx.c (nvptx_addr_space_from_sym): New. (nvptx_maybe_convert_symbolic_operand): Simplify. (nvptx_addr_space_fr

[PTX] Fix CFA breakage

2015-11-28 Thread Nathan Sidwell
description that computes the value of this field. broke PTX, as it tried to use argp for the CFA. Fixed thusly. Also tidied up a few bits of nvptx.h while I was there. nathan 2015-11-28 Nathan Sidwell * config/nvptx/nvptx.h (FIRST_PARM_OFFSET): Add void cast

Re: [PTX] Fix CFA breakage

2015-11-29 Thread Nathan Sidwell
On 11/29/15 04:03, Eric Botcazou wrote: The recent patch to tree-nested.c: 2015-11-26 Pierre-Marie de Rodat PR debug/53927 * tree-nested.c (finalize_nesting_tree_1): Append a field to hold the frame base address. * dwarf2out.c (gen_subprogram_die): Generate for

[PTX] remove unnecessary predicates

2015-11-29 Thread Nathan Sidwell
erand is the right predicate there anyway. nathan 2015-11-29 Nathan Sidwell * config/nvptx/nvptx.md (const_0_operand, global_mem_operand, const_mem_operand, param_mem_operand, shared_mem_operand): Delete. (ctrap): Use const0_operand. Index: gcc/config/nvptx/nvp

[PTX] rework PTX prototype emission

2015-11-30 Thread Nathan Sidwell
emitted by write_fn_decl_and_comment). While there I made the handling of name replacement consistent between the two prototype emitters and tidied up the argument emission of write_fn_decl. nathan 2015-11-30 Nathan Sidwell * config/nvptx/nvptx.c (nvptx_name_replacement): Move earlier. (write_one_arg

[PTX] simplify arg advance

2015-12-01 Thread Nathan Sidwell
arg_advance doesn't need to consider TImode. Those are always passed by reference. nathan 2015-12-01 Nathan Sidwell * config/nvptx/nvptx.c (nvptx_function_arg_advance): Don't consider mode. Index: config/nvp

[PTX] uninitialized decls

2015-12-01 Thread Nathan Sidwell
an a regular visible decl. (b) local decls were being exported with a .visible While there, I introduced 2 newhelper functions to emit the linker marker comments and adjusted code to use those two helpers. nathan 2015-12-01 Nathan Sidwell gcc/ * config/nvptx/nvptx-prot

Re: [gomp-nvptx 2/9] nvptx backend: new "uniform SIMT" codegen variant

2015-12-02 Thread Nathan Sidwell
On 12/02/15 05:40, Jakub Jelinek wrote: Don't know the HW good enough, is there any power consumption, heat etc. difference between the two approaches? I mean does the HW consume different amount of power if only one thread in a warp executes code and the other threads in the same warp just jum

Re: [gomp-nvptx 2/9] nvptx backend: new "uniform SIMT" codegen variant

2015-12-02 Thread Nathan Sidwell
On 12/02/15 08:10, Jakub Jelinek wrote: On Wed, Dec 02, 2015 at 08:02:47AM -0500, Nathan Sidwell wrote: Always the whole stack, from the current stack pointer up to top of the stack, so sometimes a few bytes, sometimes a few kilobytes or more each time? The frame of the current function

Re: [gomp-nvptx 2/9] nvptx backend: new "uniform SIMT" codegen variant

2015-12-02 Thread Nathan Sidwell
On 12/02/15 08:46, Jakub Jelinek wrote: Or does the OpenACC execution model not allow anything like that, i.e. have some function with an automatic variable pass the address of that variable to some other function and that other function use #acc loop kind that expects the caller to be at the wo

Re: [gomp-nvptx 2/9] nvptx backend: new "uniform SIMT" codegen variant

2015-12-02 Thread Nathan Sidwell
On 12/02/15 09:22, Jakub Jelinek wrote: I believe Alex' testing revealed that if you take address of the same .local objects in several threads, the addresses are the same, and therefore you refer to your own .local space rather than the other thread's. Before or after applying cvta? nathan

Re: [gomp-nvptx 2/9] nvptx backend: new "uniform SIMT" codegen variant

2015-12-02 Thread Nathan Sidwell
On 12/02/15 09:24, Jakub Jelinek wrote: On Wed, Dec 02, 2015 at 09:23:11AM -0500, Nathan Sidwell wrote: On 12/02/15 09:22, Jakub Jelinek wrote: I believe Alex' testing revealed that if you take address of the same .local objects in several threads, the addresses are the same, and ther

Re: [gomp-nvptx 2/9] nvptx backend: new "uniform SIMT" codegen variant

2015-12-02 Thread Nathan Sidwell
On 12/02/15 09:41, Alexander Monakov wrote: On Wed, 2 Dec 2015, Nathan Sidwell wrote: On 12/02/15 05:40, Jakub Jelinek wrote: Don't know the HW good enough, is there any power consumption, heat etc. difference between the two approaches? I mean does the HW consume different amount of

[PTX] simplify movs

2015-12-02 Thread Nathan Sidwell
needed). There doesn't appear a need for a separate punbuffer. Thus this patch deletes a lot of that machinery. nathan 2015-12-02 Nathan Sidwell * config/nvptx/nvptx-protos.h (nvptx_output_mov_insn): Declare. (nvptx_underlying_object_mode): Delete. * config/nvptx/nv

Re: [gomp-nvptx 2/9] nvptx backend: new "uniform SIMT" codegen variant

2015-12-02 Thread Nathan Sidwell
On 12/02/15 10:12, Jakub Jelinek wrote: If we have a reasonable IPA pass to discover which addressable variables can be shared by multiple threads and which can't, then we could use soft-stack for those that can be shared by multiple PTX threads (different warps, or same warp, different threads

Re: [gomp-nvptx 2/9] nvptx backend: new "uniform SIMT" codegen variant

2015-12-02 Thread Nathan Sidwell
On 12/02/15 11:35, Jakub Jelinek wrote: On Wed, Dec 02, 2015 at 06:44:11PM +0300, Alexander Monakov wrote: But you never know if people actually use #pragma omp simd regions or not, sometimes they will, sometimes they won't, and if the uniform SIMT increases power consumption, it might not be

Re: [gomp-nvptx 2/9] nvptx backend: new "uniform SIMT" codegen variant

2015-12-02 Thread Nathan Sidwell
On 12/02/15 12:09, Alexander Monakov wrote: I meant the PTX linked (post PTX-JIT link) image, so regardless of support, it's not an issue. E.g. check early in gomp_nvptx_main if .weak __nvptx_has_simd != 0. It would only break if there was dlopen on PTX. Note I found a bug in .weak support.

[PTX] #define cleanup

2015-12-02 Thread Nathan Sidwell
I noticed an enum would be cleaner to define the shuffle kinds. nathan 2015-12-02 Nathan Sidwell * config/nvptx/nvptx.c (enum nvptx_shuffle_kind): New. Absorb SHUFFLE defines. (nvptx_gen_shuffle, nvptx_print_operand, nvptx_expand_shuffle): Adjust. Index: config/nvptx/nvptx.c

[PTX] reorganize data space handling

2015-12-03 Thread Nathan Sidwell
with a little tinkering with the move insn predicates and constraints, that unspec can go away too, but I didn't want to tackle that in this patch. nathan 2015-12-03 Nathan Sidwell gcc/ * config/nvptx/nvptx-protos.h (npvptx_section_from_addr_space): Delete. * config/nvptx/nvptx.

[graphite] test needs pthreads

2015-12-04 Thread Nathan Sidwell
The recently added test graphite/id-28.c requires pthreads due to its use of -fcilkplus. Committed as obvious. nathan 2015-12-04 Nathan Sidwell * gcc.dg/graphite/id-28.c: Requires pthreads. Index: testsuite/gcc.dg/graphite/id-28.c

[PTX] prologue emission

2015-12-04 Thread Nathan Sidwell
s slightly different in the two paths. I've not changed that behaviour, but I suspect it may be an error. Will relook at that when I'm done reducing the duplication in the function calling machinery. nathan 2015-12-04 Nathan Sidwell * config/nvptx/nvptx.c (write_one_arg)

[PTX] var emission

2015-12-04 Thread Nathan Sidwell
rrays. nathan 2015-12-04 Nathan Sidwell gcc/ * config/nvptx/nvptx.c (nvptx_assemble_decl_begin): New, replacing ... (init_output_initializer): ... this. (nvptx_output_aligned_decl, nvptx_asm_declare_constant_name, nvptx_declare_object_name, nvptx_assemble_undefined_decl)

Re: [PTX] var emission

2015-12-04 Thread Nathan Sidwell
On 12/04/15 13:44, Nathan Sidwell wrote: I've committed this patch to unify the variable emission machinery. All four hooks were doing small variations of a common theme. This introduces nvptx_assemble_decl_begin to do the common work. While there, I expanded the init initialization co

[testsuite] VLA test uses alloca

2015-12-04 Thread Nathan Sidwell
gcc.dg/vla-24.c uses alloca. Marked accordingly and committed as obvious. nathan 2015-12-04 Nathan Sidwell * gcc.dg/vla-24.c: Requires alloca. Index: testsuite/gcc.dg/vla-24.c === --- testsuite/gcc.dg/vla-24.c (revision

Re: Add fuzzing coverage support

2015-12-04 Thread Nathan Sidwell
On 12/04/15 13:28, Dmitry Vyukov wrote: On Fri, Dec 4, 2015 at 6:39 PM, Jakub Jelinek wrote: On Fri, Dec 04, 2015 at 06:32:38PM +0100, Dmitry Vyukov wrote: +2015-12-04 Dmitry Vyukov + + * sancov.c: New file. + * Makefile.in (OBJS): Add sancov.o. + * invoke.texi (-fsanitize-cover

[PTX]

2015-12-07 Thread Nathan Sidwell
ave to deal with any trailing partial elements. nathan 2015-12-07 Nathan Sidwell gcc/ * config/nvptx/nvptx.c (nvptx_assemble_decl_begin): Look inside complex and vector types. Cope with packed structs. gcc/testsuite/ * gcc.target/nvptx/decl-init.c: New

Re: [PATCH] Fix new sancov tests

2015-12-07 Thread Nathan Sidwell
On 12/06/15 03:56, Dmitry Vyukov wrote: Hello, Sancov tests submitted in 231296 assume that asan is supported on all platforms. This patch fixes that assumption. * gcc.target/powerpc/recip-sqrtf.c: New test. Index: gcc.dg/sancov/sancov.exp ==

Re: [gomp-nvptx 2/9] nvptx backend: new "uniform SIMT" codegen variant

2015-12-07 Thread Nathan Sidwell
On 12/01/15 11:01, Bernd Schmidt wrote: On 12/01/2015 04:28 PM, Alexander Monakov wrote: I'm taking a different approach. I want to execute all insns in all warp members, while ensuring that effect (on global and local state) is that same as if any single thread was executing that instruction.

Re: [gomp-nvptx 6/9] nvptx libgcc: rewrite in C

2015-12-07 Thread Nathan Sidwell
On 12/01/15 18:52, Bernd Schmidt wrote: What exactly is the problem with having asm files? I'm asking because this... On 12/01/2015 04:28 PM, Alexander Monakov wrote: +/* __shared__ char *__nvptx_stacks[32]; */ +asm ("// BEGIN GLOBAL VAR DEF: __nvptx_stacks"); +asm (".visible .shared .u64 __nv

[PTX] no return fns

2015-12-07 Thread Nathan Sidwell
with what looked like incomplete jump threading. This patch changes call emission to look for a noreturn note and emit a trap insn after the call. The JIT no longer explodes. nathan 2015-12-07 Nathan Sidwell gcc/ * config/nvptx/nvptx.c (nvptx_output_call_insn): Emit trap after no r

Re: [PTX] no return fns

2015-12-07 Thread Nathan Sidwell
On 12/07/15 11:18, Nathan Sidwell wrote: calls to no return fns can cause problems with the PTX JIT. It doesn't understand their no-return nature and can erroneously think there are unexitable loops (depending on the precise placement of bbs). It can get so upset it segfaults. gcc.dg/pr

Re: [PTX] no return fns

2015-12-07 Thread Nathan Sidwell
On 12/07/15 12:08, Alexander Monakov wrote: Hello Nathan, On Mon, 7 Dec 2015, Nathan Sidwell wrote: This patch changes call emission to look for a noreturn note and emit a trap insn after the call. The JIT no longer explodes. I think there's a potential issue with the patch: whe

[PTX] return type emission

2015-12-07 Thread Nathan Sidwell
thing that I've been wondering about for a little while. So, back to figuring out that one now ... nathan 2015-12-07 Nathan Sidwell * config//nvptx/nvptx.c (write_return): New. (write_fn_proto, nvptx_declare_function_name): Call it. Index: config/nvp

Re: [PTX] no return fns

2015-12-07 Thread Nathan Sidwell
On 12/07/15 12:42, Bernd Schmidt wrote: On 12/07/2015 06:34 PM, Nathan Sidwell wrote: Aren't noreturn fns required to be void? It certainly doesn't make sense for them to do otherwise. The documentation says "it makes no sense" for them to have a type other than void, bu

[PTX] remove some test skipping

2015-12-08 Thread Nathan Sidwell
These tests no longer cause the PTX assembler to seg fault, so no reason to skip them. nathan 2015-12-08 Nathan Sidwell * gcc.c-torture/compile/920723-1.c: Remove PTX skip. * gcc.c-torture/compile/pr33855.c: Likewise. * gcc.c-torture/execute/981019-1.c: Remove PTX -O2 skip. Index

Re: [PTX] remove some test skipping

2015-12-08 Thread Nathan Sidwell
On 12/08/15 14:35, Alexander Monakov wrote: On Tue, 8 Dec 2015, Nathan Sidwell wrote: These tests no longer cause the PTX assembler to seg fault, so no reason to skip them. Shouldn't all such cases use 'dg-xfail' rather than 'dg-skip-if'? Should be more reasonable

[PTX] initialization fragment emission

2015-12-08 Thread Nathan Sidwell
h fragment. nathan 2015-12-08 Nathan Sidwell gcc/ * config/nvptx/nvptx.c (decl_chunk_size, decl_chunk_mode, decl_offset, init_part, object_size, object_finished): Replace with ... (struct init_frag): ... this new struct variable. (begin_decl_field, output_decl_chunk): Re

[PTX] reorder function calling hooks

2015-12-10 Thread Nathan Sidwell
same calculation. Also, I split write_one_arg into a write_one_arg helper, (which does write one arg), and a write_arg main entry point (which writes one or more PTX args). nathan 2015-12-10 Nathan Sidwell * config/nvptx/nvptx.c (nvptx_function_arg, nvptx_function_incomin

Re: RFC: Monitoring old PRs, new dg directives

2020-08-10 Thread Nathan Sidwell
rch or regexp-isearch :-) It was incremental :) it;s kind of nice just to stop typing when it hits the first ICE message! But, I'm not going to object any more, I guess I'll live with it. [I'm sure I can figure out some emacs macro binding to DTRT] nathan -- Nathan Sidwell

c++: Unconfuse lookup_name_real API a bit

2020-08-13 Thread Nathan Sidwell
it_capture_pack) (tsubst_expr): Likewise. * semantics.c (capture_decltype): Likewise. libcc1/ * libcp1plugin.cc (plugin_build_dependent_expr): Likewise. pushing to trunk nathan -- Nathan Sidwell diff --git c/gcc/cp/call.c w/gcc/cp/call.c index f164b211c9f..47a368d069d 100644 --- c/gcc/

c++: More simplification of name_lookup api

2020-08-14 Thread Nathan Sidwell
): Adjust lookup_name_real call. (lookup_init_capture, tsubst_expr): Likewise. * rtti.c (emit_support_tinfos): Adjust lookup_qualified_name call. * semantics.c (omp_reduction_lookup): Likewise. (capture_decltype): Adjust lookup_name_real call. libcc1/ *

Re: [PATCH] introduce attribute exalias

2020-08-14 Thread Nathan Sidwell
+.dg/torture/attr-exalias-3.C: New. * g++.dg/torture/attr-exalias-4.C: New. https://gcc.gnu.org/pipermail/gcc-patches/2020-August/551614.html -- Nathan Sidwell

c++: Yet more name-lookup api simplification

2020-08-14 Thread Nathan Sidwell
look in namespaces. libcc1/ * libcp1plugin.cc (plugin_build_dependent_exp): Adjust lookup_name_real call. -- Nathan Sidwell diff --git c/gcc/cp/call.c w/gcc/cp/call.c index d4935bd0ce1..7b46d70c2cf 100644 --- c/gcc/cp/call.c +++ w/gcc/cp/call.c @@ -4704,7 +4704,7 @@ build_operato

Re: [PATCH] introduce attribute exalias

2020-08-14 Thread Nathan Sidwell
On 8/14/20 3:24 PM, Alexandre Oliva wrote: On Aug 14, 2020, Nathan Sidwell wrote: This seems a useful feature. I don;t think it needs language lawyering -- it's an extension, right? Well, yeah, but I think it's usually good for even extensions to be sound language-wise. By &#x

c++: Final bit of name-lookup api simplification

2020-08-14 Thread Nathan Sidwell
(tsubst_friend_class, lookup_init_capture_pack): Likewise. (tsubst_expr): Likewise. * semantics.c (capture_decltype): Likewise. libcc1/ * libcp1plugin.cc (plugin_build_dependent_expr): Rename lookup_name_real call. -- Nathan Sidwell diff --git i/gcc/cp/call.c w/gcc/cp

Re: [PATCH] introduce attribute exalias

2020-08-15 Thread Nathan Sidwell
On 8/14/20 10:43 PM, Alexandre Oliva wrote: On Aug 14, 2020, Nathan Sidwell wrote: Since you don't seem to have liked 'aka' either, how about 'nickname', or 'nicknamed'? A more convenient name to refer to an entity is exactly what this is about, eh?

c++: Move hidden-lambda entity lookup checking

2020-08-18 Thread Nathan Sidwell
name-lookup.c (qualify_lookup): Drop lambda checking here. Reorder namespace & type checking. (lookup_name_1): Do hidden lambda checking here. pushed -- Nathan Sidwell diff --git i/gcc/cp/name-lookup.c w/gcc/cp/name-lookup.c index ad9c92da254..c68ea09e610 100644 --- i/gc

c++: alias template template_info setting

2020-08-18 Thread Nathan Sidwell
t. Needless to say modules fell over the duplicated template_info and got very confused. gcc/cp/ * cp-tree.h (SET_TYPE_TEMPLTE_INFO): Do not deal with ALIAS templates. * pt.c (lookup_template_class_1): Special-case alias template template_info setting. -- Nath

c++: overload dumper

2020-08-24 Thread Nathan Sidwell
I frequently need to look at overload sets, and debug_node spews more information than is useful, most of the time. Here's a dumper for overloads, that just tells you their full name and where they came from. gcc/cp * ptree.c (debug_overload): New. pushed -- Nathan Sidwell

c++: template operator lookup caching

2020-08-26 Thread Nathan Sidwell
g, check class binding here. (maybe_save_operator_binding): Reimplement to always cache a result. (push_operator_bindings): Deal with 'ignore' marker. gcc/testsuite/ * g++.dg/lookup/operator-1.C: New. * g++.dg/lookup/operator-2.C: New. pushed nathan --

RFQ: -R remark options

2020-08-26 Thread Nathan Sidwell
#x27; thoughts? nathan -- Nathan Sidwell

Re: RFQ: -R remark options

2020-08-26 Thread Nathan Sidwell
ed to vectorize this loop because ...' thoughts? this would be very bad on Solaris: it's been using -R (the native form of GNU ld -rpath) for ages; changing this now would cause much breakage. oh gosh, I remember that :) thanks for the reminder! nathan -- Nathan Sidwell

Re: RFQ: -R remark options

2020-08-26 Thread Nathan Sidwell
On 8/26/20 9:40 AM, Richard Biener wrote: On Wed, Aug 26, 2020 at 3:37 PM Nathan Sidwell wrote: Hi, I had a need to add a new type of informative message on the modules branch, with an option to enable it. The message is not a warning or an error, but just 'hey, you asked if X happens

Re: c++: template operator lookup caching

2020-08-26 Thread Nathan Sidwell
On 8/26/20 12:06 PM, Jason Merrill wrote: On 8/26/20 8:30 AM, Nathan Sidwell wrote: Jason's fix to retain operator lookups inside dependent lambda functions turns out to be needed on the modules branch for all template functions.  Because the context for that lookup no longer exists in im

Re: c++: template operator lookup caching

2020-08-26 Thread Nathan Sidwell
On 8/26/20 1:07 PM, Jason Merrill wrote: On 8/26/20 12:56 PM, Nathan Sidwell wrote: On 8/26/20 12:06 PM, Jason Merrill wrote: On 8/26/20 8:30 AM, Nathan Sidwell wrote: This still retains only recording on lambdas.  As the comment says, we could enable for all templates. If we're

Re: [PATCH] modules: c++: Fix push_namespace ICE with modules

2020-08-27 Thread Nathan Sidwell
ng-view1.C: New test. * g++.dg/modules/string-view2.C: Ditto. Please let me know if there's anything more I can do, Jeff Chapman II -- Nathan Sidwell diff --git c/ChangeLog.modules w/ChangeLog.modules index 4d50352a698..27233f0228d 100644 --- c/ChangeLog.modules +++ w/ChangeLog.m

Re: [PATCH] c++: Stop defining true, false and bool as macros in

2020-09-02 Thread Nathan Sidwell
ux, OK for trunk? seems reasonable, thanks -- Nathan Sidwell

<    2   3   4   5   6   7   8   9   10   11   >