branch on darwin include Ada,
and I have done so for linux (a few months back). I will make sure to
check that more regularly during the modules merge.
nathan
--
Nathan Sidwell
need to call the namespace adl
if it is class-scope.
(name_lookup::search_adl): Iterate over collected scopes here.
pushing to trunk
nathan
--
Nathan Sidwell
diff --git i/gcc/cp/cp-tree.h w/gcc/cp/cp-tree.h
index 052291c40fe..081373076b9 100644
--- i/gcc/cp/cp-tree.h
+++ w/gcc/
pplib tends to sprinkle them liberally and I guess I got infected.
I trust this addresses your concerns.
nathan
--
Nathan Sidwell
libcpp/
* include/cpplib.h (struct cpp_options): Add module_directives
option.
(NODE_MODULE): New node flag.
(cpp_hashnode): Make rid_code bitfield, increase flag
eprocessed unit,
the mapper again receives MODULE-EXPORT and MODULE-IMPORT for
non-header modules:
g++-m ... -E -x c++ -fpreprocessed -fdirectives-only hello.gcm.ii
These are also unnecessary.
These are needed as they also serve to inform the mapper of a dependency
edge.
nathan
On 11/3/20 4:17 PM, Nathan Sidwell wrote:
this is the module mapper client and server pieces. It features a
default resolver that can read a text file, or generate default mappings
from module name to cmi name.
Richard rightly suggested on IRC that the sample server for the module
mapper
On 11/3/20 4:16 PM, Nathan Sidwell wrote:
This is probably the messiest diff.
Let's break this diff apart a bit more, for digestibility.
Here's the MODULE_VECTOR piece. This is a sparse array used for name
lookup. A namespace symbol table entry may contain one of these, which
dule (interface or implementation).
There are a bunch of inline predicate functions to decode the various
combinations that are useful.
nathan
--
Nathan Sidwell
diff --git c/gcc/cp/cp-tree.h w/gcc/cp/cp-tree.h
index 63724c0e84f..4752ddef898 100644
--- c/gcc/cp/cp-tree.h
+++ w/gcc/cp/cp-tree.h
@@
On 11/13/20 9:27 AM, Richard Biener wrote:
On Fri, Nov 13, 2020 at 3:04 PM Nathan Sidwell wrote:
struct GTY(()) lang_decl_base {
- /* Larger than necessary for faster access. */
- ENUM_BITFIELD(lang_decl_selector) selector : 16;
+ ENUM_BITFIELD(lang_decl_selector) selector : 3
where it was first declared. So to simplify things, in that case
we make a clone of the CONST_DECL in the using class.
Thanks for finishing this off! Now, let's see what that broke in
modules ...
nathan
--
Nathan Sidwell
pe, tree aw_nam, tree
susp_type,
+tree susp_handle_nam)
fn needs a comment
diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c
index 094e32edf5..41c14001fd 100644
--- a/gcc/cp/decl.c
+++ b/gcc/cp/decl.c
@@ -16783,6 +16783,29 @@ add_return_star_this_fixit (gcc_rich_location
*richloc, tree fndecl)
indent);
}
+static void
+emit_coro_helper (tree helper)
fn needs a comment.
thanks,
nathan
--
Nathan Sidwell
cidentally, this means we will now optimize member
class instantiations in this case, whereas before we didn't.
Committing to trunk.
nathan
--
Nathan Sidwell
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 004ce0fdcdf..3cc7c48b490 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeL
On 1/14/20 3:13 PM, Jason Merrill wrote:
On 1/14/20 2:14 PM, Nathan Sidwell wrote:
+ if (tree ti = (TREE_CODE (fn) == TYPE_DECL &&
!TYPE_DECL_ALIAS_P (fn)
+ ? TYPE_TEMPLATE_INFO (TREE_TYPE (fn))
+ : DECL_TEMPLATE_INFO (fn)))
Is there a reason no
On 1/14/20 3:29 PM, Nathan Sidwell wrote:
On 1/14/20 3:13 PM, Jason Merrill wrote:
On 1/14/20 2:14 PM, Nathan Sidwell wrote:
+ if (tree ti = (TREE_CODE (fn) == TYPE_DECL &&
!TYPE_DECL_ALIAS_P (fn)
+ ? TYPE_TEMPLATE_INFO (TREE_TYPE (fn))
+ : DECL_TEMPLATE_
On 1/14/20 4:21 PM, Marek Polacek wrote:
On Tue, Jan 14, 2020 at 04:10:07PM -0500, Nathan Sidwell wrote:
2020-01-14 Nathan Sidwell
+ PT c++/90916
Note this has PT instead of PR :).
yeah, I caught the typo on the followup. Thanks for noticing!
nathan
--
Nathan Sidwell
bservable via strace,
which I did manually.
nathan
--
Nathan Sidwell
2020-01-17 Nathan Sidwell
PR preprocessor/93306
* expr.c (parse_has_include): Refactor. Check skip_eval before
looking.
diff --git c/libcpp/expr.c w/libcpp/expr.c
index 1078c0722f6..317faf50208 100644
--- c/libcpp
ed a forwarding macro.
nathan
--
Nathan Sidwell
2020-01-20 Nathan Sidwell
libcpp/
PR preprocessor/80005
* include/cpplib.h (BT_HAS_ATTRIBUTE): Fix comment.
* internal.h (struct lexer_state): Delete in__has_include field.
(struct spec_nodes): Rename n__has_include{,_next}__ fields.
(_cpp_defi
hatever. So, I think you only
want a diagnostic here when you get NULL_TREE back.
nathan
--
Nathan Sidwell
, thanks
--
Nathan Sidwell
On 1/20/20 9:01 PM, Jim Wilson wrote:
On Mon, Jan 20, 2020 at 5:44 AM Nathan Sidwell wrote:
I've pushed this to master, to address 80005
__has_include is funky in that it is macro-like from the POV of #ifdef
...
With this patch, __has_include__ no longer works. There is a use of
th
On 1/20/20 10:38 PM, JunMa wrote:
在 2020/1/21 上午9:31, JunMa 写道:
在 2020/1/20 下午11:49, Nathan Sidwell 写道:
On 1/20/20 12:18 AM, JunMa wrote:
Hi
This patch adds lookup_awaitable_member, it outputs error messages
when any of
the await_ready/suspend/resume functions are missing in awaitable
class
on return
value of build_co_await.
(finish_co_yield_expr,): Ditto.
ok, thanks
nathan
--
Nathan Sidwell
.
nathan
--
Nathan Sidwell
underlying filesystem. But, if the temp files are
on the same FS as the thing they're temping for, then there shouldn't be
a conflict. If they are different, then one might hope the temp-fs
allows a superset.
nathan
--
Nathan Sidwell
y, I'm not really going to have time to invest in this in
the near future.
nathan
--
Nathan Sidwell
I noticed, but ignored this code when addressing p80005, but having
fixed up defined(X) on the modules branch, I could see where it came
from, and it's obviously wrong as we've just pulled out a string
contant from the token.
pushed to trunk.
nathan
--
Nathan Sidwell
2020-01-24 Nath
get return object'.
ok, thanks
--
Nathan Sidwell
I've committed this to fix 91826
My changes to is_nested_namespace broke is_ancestor's use where a
namespace alias might be passed in. This changes is_ancestor to look
through the alias.
nathan
--
Nathan Sidwell
gcc/cp/ChangeLog | 5 +
gcc/cp/nam
;s frame pointer argument.
(build_actor_fn, build_destroy_fn): Use frame pointer argument.
--
Nathan Sidwell
(transform_await_wrapper): Set actor funcion as
new context of label_decl.
(build_actor_fn): Fill new field of await_xform_data.
gcc/testsuite
2020-01-21 Jun Ma
* g++.dg/coroutines/co-await-04-control-flow.C: Add label.
--
Nathan Sidwell
ander): Handle type conversion case.
gcc/testsuite
2020-01-22 Bin Cheng
* g++.dg/coroutines/co-await-syntax-09-convert.C: New test.
ok, thanks
--
Nathan Sidwell
n needed.
(co_await_expander): Sink to call_expr if await_resume
is wrapped by indirect_ref.
gcc/testsuite
2020-01-21 Jun Ma
* g++.dg/coroutines/co-await-14-return-ref-to-auto.C: Add label.
--
Nathan Sidwell
just expand it anywhere.
I did try down this path the first time round, but it started looking
rat holey. Turns out not so rat holey after all.
nathan
--
Nathan Sidwell
2020-01-28 Nathan Sidwell
PR preprocessor/93452
* internal.h (struct spec_nodes): Drop n__has_include{,_next}.
nt to pick a canonical 'error' value -- either NULL_TREE or
error_mark_node, but not both?
nathan
--
Nathan Sidwell
Add a bool for no promise type error.
(coro_promise_type_found_p): Only emit the error for a missing
promise once in each affected coroutine.
ok, thanks.
nathan
--
Nathan Sidwell
On 1/29/20 10:39 AM, Iain Sandoe wrote:
Hi Nathan,
Nathan Sidwell wrote:
Made the function type error recorded per function too.
OK now?
Still some things to address ...
diff --git a/gcc/cp/coroutines.cc b/gcc/cp/coroutines.cc
index e8a6a4033f6..3ad80699ca0 100644
--- a/gcc/cp
oroutine traits template using 'std::coroutine_traits’”
hm, 'valid'. If you find a template_decl, but cannot instantiate it,
that sounds not valid. But I suspect you do not diagnose that here,
because in general you cannot :)
sorry to be a pain.
nathan
--
Nathan Sidwell
On 2/1/20 6:55 AM, Iain Sandoe wrote:
Nathan Sidwell wrote:
On 1/30/20 9:43 AM, Iain Sandoe wrote:
Hi Nathan,
however. ….
also, what if you find something, but it's not a type template?
… I’ve switched the complain off on lookup_qualified_name and now check for
a type template.
this bit. This too is
stripping a reference access, right? I.e. TYPE_REF_P (TREE_TYPE
(resume_call)) is true. You should that as the condition too.
the other part of the patch is fine
nathan
--
Nathan Sidwell
On 2/3/20 8:47 PM, JunMa wrote:
在 2020/2/3 下午8:53, Nathan Sidwell 写道:
sorry, I should have realized you still needed this bit. This too is
stripping a reference access, right? I.e. TYPE_REF_P (TREE_TYPE
(resume_call)) is true. You should that as the condition too.
you mean
would be a regression. The patch does still
allow it in #define if it is then used in preprocessing directives, I guess
that use isn't strictly valid either, but clang seems to accept it.
Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk?
yes, thanks!
--
Nathan Sidwell
further error to the
pr88974.c testcase, if we wanted just one error per __has_include,
we could add some boolean whether we've emitted errors already and
only emit the first one we encounter (not implemented).
thanks for fixing.
nathan
--
Nathan Sidwell
n4849, dcl.fct.def.coroutine bullet 12.
(morph_fn_to_coro): Implement allocation function selection per
n4849, dcl.fct.def.coroutine bullets 9 and 10.
gcc/testsuite/ChangeLog:
This is ok. I was having a dumb wrt to the type_size thing we talked about.
nathan
--
Nathan Sidwell
n for
the instantiations -- overriding the default of .rodata or .data for variable
instantiations for example.
nathan
--
Nathan Sidwell
tributors explicitly paid for the addition.
Personally, a Rust FE is an exciting idea.
nathan
--
Nathan Sidwell
nothing, or because the
user made it ambiguous in some way). But I didn't know about the kind
of speculative lookup you have here.
nathan
--
Nathan Sidwell
Jason's recent patch
2019-12-17 Jason Merrill
PR c++/79592 - missing explanation of invalid constexpr.
Caused ubsan/vptr-4.C to emit an additional, correct, diagnostic.
Committing this to update the testcase.
nathan
--
Nathan Sidwell
2020-01-06 Nathan Sidwell
PR c++/
dules-ts" }
+// { dg-module-cmi pr106363.b }
+
+export module pr106363.b;
+import pr106363.a;
+
+namespace ns {
+ export using ns::x;
+}
--
2.42.0
--
Nathan Sidwell
9ac178919
prerequisite-patch-id: 66735c0c7beb22586ed4b632d10ec9094bb9920c
--
Nathan Sidwell
On 12/18/23 17:10, Jason Merrill wrote:
On 12/18/23 16:57, Nathan Sidwell wrote:
On 12/18/23 16:31, Jason Merrill wrote:
Tested x86_64-pc-linux-gnu. Does this make sense? Did you have another theory
about how to merge these?
Why isn't push_abi_namespace doing the right setup here? (
ules/pr106363_b.C
new file mode 100644
index 000..0508c0d6193
--- /dev/null
+++ b/gcc/testsuite/g++.dg/modules/pr106363_b.C
@@ -0,0 +1,10 @@
+// PR c++/106363
+// { dg-additional-options "-fmodules-ts" }
+// { dg-module-cmi pr106363.b }
+
+export module pr106363.b;
+import pr106363.a;
+
+namespace ns {
+ export using ns::x;
+}
--
Nathan Sidwell
-import mod:impl;
+import :impl;
diff --git a/gcc/testsuite/g++.dg/modules/part-mac-1_c.C
b/gcc/testsuite/g++.dg/modules/part-mac-1_c.C
index 78a53d2fda3..db57adcef44 100644
--- a/gcc/testsuite/g++.dg/modules/part-mac-1_c.C
+++ b/gcc/testsuite/g++.dg/modules/part-mac-1_c.C
@@ -2,4 +2,4 @@
// { dg-module-cmi {mod} }
export module mod;
-import mod:impl;
+import :impl;
--
2.42.0
--
Nathan Sidwell
ing-11_b.C
b/gcc/testsuite/g++.dg/modules/using-11_b.C
new file mode 100644
index 000..736a48c98f2
--- /dev/null
+++ b/gcc/testsuite/g++.dg/modules/using-11_b.C
@@ -0,0 +1,8 @@
+// PR c++/109679
+// { dg-module-do link }
+// { dg-additional-options "-fmodules-ts" }
+
+import M;
+int main() {
+ return foo();
+}
--
Nathan Sidwell
this a try then, if you think that would be
sensible. (Where by "this" I mean "emit all public declarations in
module interface files, whether used or not".)
I'd like to hear Nathan's thoughts on the matter first, since he's the modules
implementation designer.
Jason
--
Nathan Sidwell
ot; }
+enum class e2 { x2 }; // { dg-message "declared here with internal
linkage" }
+ }
+}
+
+namespace m {
+ enum e3 { x3 }; // { dg-message "declared here with module linkage" }
+ enum class e4 { x4 }; // { dg-message "declared here with module linkage" }
+}
+
+export using enum s::e1; // { dg-error "does not have external linkage" }
+export using enum s::e2; // { dg-error "does not have external linkage" }
+export using enum m::e3; // { dg-error "does not have external linkage" }
+export using enum m::e4; // { dg-error "does not have external linkage" }
+
+// { dg-prune-output "not writing module" }
--
Nathan Sidwell
0..8c7b1f0511f
--- /dev/null
+++ b/gcc/testsuite/g++.dg/modules/merge-16_b.C
@@ -0,0 +1,5 @@
+// PR c++/112588
+// { dg-additional-options "-fmodules-ts" }
+
+#include "merge-16.h"
+import merge16;
--
Nathan Sidwell
+import M;
+
+int main() {
+ const int& x = A::x;
+ if (x != -1)
+__builtin_abort();
+}
--
Nathan Sidwell
dules/pr103499_b.C
new file mode 100644
index 000..b7468562ba9
--- /dev/null
+++ b/gcc/testsuite/g++.dg/modules/pr103499_b.C
@@ -0,0 +1,8 @@
+// PR c++/103499
+// { dg-additional-options "-fmodules-ts" }
+
+import pr103499;
+
+void test(derived* p) {
+ delete p;
+}
--
Nathan Sidwell
les-ts" }
+// { dg-module-cmi !lib }
+
+export module lib;
+
+namespace outer {
+ template void any_of(T) { } // { dg-note "declared here" }
+}
+
+export using outer::any_of; // { dg-error "does not have external linkage" }
+
+// { dg-prune-output "not writing module" }
--
Nathan Sidwell
On 11/9/23 18:29, Nathaniel Shead wrote:
On Thu, Nov 09, 2023 at 05:57:39PM -0500, Nathan Sidwell wrote:
On 11/9/23 04:55, Nathaniel Shead wrote:
I'm not sure if this is just papering over a general issue of clones not being
exported/imported, or if this is just an exception to the ge
d-off-by: Nathaniel Shead
thanks, I've committed it for you.
nathan
--
Nathan Sidwell
ot; }
-// doesn't go via duplicate_decls so we miss this for now
class A;
-export class A; // { dg-error "conflicting exporting declaration" "" { xfail
*-*-* } }
+export class A; // { dg-error "conflicting exporting for declaration" }
-// { dg-warning "due to errors" "" { target *-*-* } 0 }
+template struct B;
+export template struct B {}; // { dg-error "conflicting exporting for
declaration" }
+
+// { dg-warning "due to errors" "" { target *-*-* } 0 }
--
Nathan Sidwell
exporting for declaration" }
+export typedef int z; // { dg-bogus "conflicting exporting for declaration" }
+
+template using w = T;
+export template using w = T; // { dg-error "conflicting exporting for
declaration" }
template int f (T);
export template int f (T); // { dg-error "conflicting exporting for
declaration" }
--
Nathan Sidwell
e mode 100644
index 000..ab0c4ab4805
--- /dev/null
+++ b/gcc/testsuite/g++.dg/modules/lambda-6_b.C
@@ -0,0 +1,9 @@
+// PR c++/107398
+// { dg-additional-options "-fmodules-ts" }
+
+import Lambda6;
+
+int main() {
+ if (foo() != 1)
+__builtin_abort();
+}
--
Nathan Sidwell
e/g++.dg/modules/part-mac-1_c.C
b/gcc/testsuite/g++.dg/modules/part-mac-1_c.C
index 78a53d2fda3..db57adcef44 100644
--- a/gcc/testsuite/g++.dg/modules/part-mac-1_c.C
+++ b/gcc/testsuite/g++.dg/modules/part-mac-1_c.C
@@ -2,4 +2,4 @@
// { dg-module-cmi {mod} }
export module mod;
-import mod:impl;
+import :impl;
--
Nathan Sidwell
e/g++.dg/modules/pr99232_b.C
@@ -0,0 +1,7 @@
+// PR c++/99232
+// { dg-additional-options "-fmodules-ts" }
+
+import pr99232;
+
+double foo() { return lambda * 2.0; }
+static_assert(a == 42);
--
Nathan Sidwell
e 100644
index 000..b5e81a1041b
--- /dev/null
+++ b/gcc/testsuite/g++.dg/modules/pr112631.C
@@ -0,0 +1,8 @@
+// { dg-additional-options "-fmodules-ts" }
+// { dg-module-cmi bla }
+
+export module bla;
+
+extern "C++" inline void fun() {
+ void oops(); // { dg-bogus "block-scope extern declaration" }
+}
--
Nathan Sidwell
On 11/23/23 21:10, Nathaniel Shead wrote:
On Thu, Nov 23, 2023 at 11:45:31AM -0500, Nathan Sidwell wrote:
On 11/13/23 01:09, Nathaniel Shead wrote:
I happened to be browsing the standard a bit later and noticed that we
incorrectly reject the example given below.
Bootstrapped on x86_64-pc
ge" }
+enum class e2 { x2 }; // { dg-message "declared here with internal
linkage" }
+ }
+}
+
+namespace m {
+ enum e3 { x3 }; // { dg-message "declared here with module linkage" }
+ enum class e4 { x4 }; // { dg-message "declared here with module linkage" }
+}
+
+export using enum s::e1; // { dg-error "does not have external linkage" }
+export using enum s::e2; // { dg-error "does not have external linkage" }
+export using enum m::e3; // { dg-error "does not have external linkage" }
+export using enum m::e4; // { dg-error "does not have external linkage" }
+
+// { dg-prune-output "not writing module" }
--
Nathan Sidwell
e
thoughts?
nathan
--
Nathan Sidwell
r
syntax with them seems odd.
nathan
--
Nathan Sidwell
On 08/28/13 12:52, Jan Hubicka wrote:
What is really important for backend is that it is not defined what happens
when you compare addresses of those functions (based on fact that youcan't take
it, as for ctors/dtors, or compare it, as for virtual functions). If backend
also knows that they are
On 09/05/13 15:50, Joern Rennecke wrote:
Apart from Paolo Carlini's suggestion to improve the wording of the ChangeLog,
this patch hasn't been reviewed for more than a week:
http://gcc.gnu.org/ml/gcc-patches/2013-08/msg01634.html
I don't think the issue is whether they should be treated as equi
On 09/02/13 13:23, Sebastian Huber wrote:
what is the blocking point for GCC integration? It was accepted by the SC and
all issues of the last review have been addressed (at least this is my
impression). Is it that none of the persons with global write permission seems
to be responsible?
Tha
I discovered these tests were relying on implicitly using vector partitioning,
rather than specifying it explicitly.
Fixed thusly.
nathan
Index: gcc/testsuite/c-c++-common/goacc/reduction-1.c
===
--- gcc/testsuite/c-c++-common/goac
These two libgomp tests were likewise presuming vector partitioning, without
specifying it.
nathan
2016-01-22 Nathan Sidwell
* testsuite/libgomp.oacc-c-c++-common/routine-1.c: Specify vector.
* testsuite/libgomp.oacc-c-c++-common/routine-2.c: Likewise.
Index: libgomp/testsuite
undefined behaviour.
nathan
2016-01-22 Nathan Sidwell
* testsuite/libgomp.oacc-c-c++-common/atomic_capture-1.c: Don't
assume atomic op ordering.
* testsuite/libgomp.oacc-fortran/atomic_capture-1.f90: Likewise.
Index: libgomp/testsuite/libgomp.oacc-c-c++-common/ato
t the innermost
available level.
This means that if we run out of available partitions, we've parallelized the
outer loop and the innermost loops, rather than just parallelized the inner loops.
nathan
2016-01-22 Nathan Sidwell
gcc/
* omp-low.c (struct oacc_loop): Add
On 01/04/16 10:39, Nathan Sidwell wrote:
There's currently no robust predicate to determine whether an oacc offload
function is for a kernels region (as opposed to a parallel region). The test in
tree-ssa-loop.c uses the heuristic of seeing if all the dimensions are defaulted
(whic
value.
The outcome is that the naive user will get multiple compute elements for
'#pragma acc loop' use in a parallel region, whereas before they had to specify
the number of elements to guarantee that (but as mentioned above would then want
to specify which axis each loop should be part
ymbol errors, which might confuse?)
Or even better, report those errors earlier?
Well, one could split the pass into two passes (I think) and move the first
half. But in general, these errors are only discoverable in the device compiler.
nathan
--
Nathan Sidwell - Director, Sourcery Ser
On 01/29/16 10:18, Jakub Jelinek wrote:
On Thu, Jan 28, 2016 at 10:38:51AM -0500, Nathan Sidwell wrote:
This patch adds default compute dimension handling. Users rarely specify
compute dimensions, expecting the toolchain to DTRT. More savvy users would
like to specify global defaults. This
On 01/29/16 10:18, Jakub Jelinek wrote:
On Thu, Jan 28, 2016 at 10:38:51AM -0500, Nathan Sidwell wrote:
This patch adds default compute dimension handling. Users rarely specify
compute dimensions, expecting the toolchain to DTRT. More savvy users would
like to specify global defaults. This
On 02/01/16 10:32, Jakub Jelinek wrote:
On Mon, Feb 01, 2016 at 09:15:05AM -0500, Nathan Sidwell wrote:
On 01/29/16 10:18, Jakub Jelinek wrote:
On Thu, Jan 28, 2016 at 10:38:51AM -0500, Nathan Sidwell wrote:
This patch adds default compute dimension handling. Users rarely specify
compute
On 02/01/16 11:55, Alexander Monakov wrote:
Hello!
The following patch fixes subtle breakage on NVPTX when unsigned comparisons
would be sometimes mistranslated by PTX JIT. The new test demonstrates that
by using the %nctaid.x (number of blocks) register, but a comparison against
a value in con
On 02/01/16 13:42, Jakub Jelinek wrote:
Your patch broke bootstrap on ILP32 hosts, I'm testing following fix.
Supporting unsigned values from 0x8000U to 0xU only on LP64
hosts and not on ILP64 hosts sounds really weird, I think it is better
to only support 1 to 0x7fffU.
yes, I
ch to handling errors in the env
var parsing, and ducked to silently ignore problems (and the plugin will then
provide fallback values).
ok?
nathan
2016-02-03 Nathan Sidwell
gcc/
* doc/invoke.texi (fopenacc-dim): Document runtime support.
* omp-low.c(oacc_parse_default_dim
On 02/03/16 11:10, Alexander Monakov wrote:
Hello,
On Wed, 3 Feb 2016, Nathan Sidwell wrote:
1) extend the -fopenacc-dim=X:Y:Z syntax to allow '-' indicating a runtime
choice. (0 also indicates that, but I thought best to have an explicit syntax
as well).
Does it work whe
While I've not looked at the rest of the patch, this bit stood out:
+static bool
+is_oacc_parallel_reduction (tree var, omp_context *ctx)
+{
+ if (!is_oacc_parallel (ctx))
+return false;
+
+ tree clauses = gimple_omp_target_clauses (ctx->stmt);
+
+ /* Don't install a local copy of the dec
On 02/15/16 13:44, Alexander Monakov wrote:
This patch implements the NVPTX backend part of the transition to
+ static const char template64[] = ENTRY_TEMPLATE ("64", "8", "mad.wide.u32");
+ static const char template32[] = ENTRY_TEMPLATE ("32", "4", "mad.lo.u32 ");
+#undef ENTRY_TEMPLATE
+
On 02/22/16 10:30, Cesar Philippidis wrote:
This patch teaches the nvptx vector state propagator how to handle
QImode and HImode variables. Basically, I'm converting the 8- and 16-bit
values into 32-bits so that the shuffle broadcast can be used to
propagate the register.
I'm not sure if my solu
On 02/22/16 10:34, Cesar Philippidis wrote:
Ping. This patch still needs a review.
I'm not sure who has the approval ball. Jakub?
nathan
On 02/22/16 12:03, Aaron Conole wrote:
The previous gcov behavior was to always output errors on the stderr channel.
This is fine for most uses, but some programs will require stderr to be
silent for certain tests. This change allows configuring the gcov output by
an environment variable which wi
On 02/22/16 13:11, Aaron Conole wrote:
Nathan Sidwell writes:
Hi Nathan, thanks so much for looking at this!
On 02/22/16 12:03, Aaron Conole wrote:
The previous gcov behavior was to always output errors on the stderr channel.
This is fine for most uses, but some programs will require stderr
an recook, test, and resubmit with
these corrected.
Lazy opening -- open on first error output. Something like
if (!gcov_error_file)
gcov_error_file = gcov_open_error_file ();
in gcov_error?
FWIW, I think this has missed the boat for gcc 6.1, as we're now in stage 4.
nathan
--
Nathan Sidwell
On 02/22/16 15:25, Alexander Monakov wrote:
Template strings have an embedded nul character at the position where ORIG
goes, so template_2 is set to point at the position following the embedded nul
in template_1. Offset of the embedded nul is the same in each template
string, so it doesn't matt
On 02/23/16 11:04, Aaron Conole wrote:
Before I start cooking up this change, is it possible I need to worry about
gcov_error being invoked from multiple threads? If so, I'll need some
kind of mutex which I think is not needed with the current design.
As I recall the main entry points to the g
IFN_GOACC_LOOP fns to transform.
Fixed by counting the IFN_GOACC_LOOP calls during loop detection, and not trying
to transform those calls if they don't exist.
nathan
2016-02-24 Nathan Sidwell
gcc/
PR other/69916
* omp-low.c (struct oacc_loop): Add ifns.
(new_oacc_loop_raw): Initiali
nathan
2016-02-24 Nathan Sidwell
gcc/
PR middle-end/69916
* omp-low.c (struct oacc_loop): Add ifns.
(new_oacc_loop_raw): Initialize it.
(finish_oacc_loop): Clear mask & flags if no ifns.
(oacc_loop_discover_walk): Count IFN_GOACC_LOOP calls.
(oacc_loop_xform_loop): Add ifns arg &
This is the patch I committed. Bernd pointed out that I didn't need to be so
coy about the branches in the middle of blocks at that point of the compilation
anyway. So we remove a couple of unneeded insn patterns.
nathan
2015-07-09 Nathan Sidwell
Infrastru
I've committed this patch to fix a df verify crash Thomas pointed me at.
Thomas, I think this means you can revert the workaround you just committed?
nathan
2015-07-10 Nathan Sidwell
* config/nvptx/nvptx.c (nvptx_reorg): Move df problem setting, set
dirty flags.
201 - 300 of 2551 matches
Mail list logo