diff options
author | Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com> | 2018-05-04 16:47:34 +0000 |
---|---|---|
committer | Pekka Jääskeläinen <visit0r@gcc.gnu.org> | 2018-05-04 16:47:34 +0000 |
commit | f986735ac51029172a62e9e705a658cd0ee241e8 (patch) | |
tree | 84a491a892e61aa0e2eaac3d3328b9837a8d4c7b /gcc/brig | |
parent | 637f3cdec3168c4acf42b067cf511e0aecfcfcae (diff) | |
download | gcc-f986735ac51029172a62e9e705a658cd0ee241e8.zip gcc-f986735ac51029172a62e9e705a658cd0ee241e8.tar.gz gcc-f986735ac51029172a62e9e705a658cd0ee241e8.tar.bz2 |
[BRIGFE] The modulo in ID computation should not be needed.
The case where a dim is greater than the grid size doesn't seem
to be mentioned in the specs nor tested by PRM test suite.
From-SVN: r259944
Diffstat (limited to 'gcc/brig')
-rw-r--r-- | gcc/brig/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/brig/brigfrontend/brig-code-entry-handler.cc | 10 |
2 files changed, 6 insertions, 9 deletions
diff --git a/gcc/brig/ChangeLog b/gcc/brig/ChangeLog index 57d44b7..c68c8dd 100644 --- a/gcc/brig/ChangeLog +++ b/gcc/brig/ChangeLog @@ -1,5 +1,10 @@ 2018-05-04 Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com> + * brig/brigfrontend/brig-code-entry-handler.cc: The modulo in + ID computation should not be needed. + +2018-05-04 Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com> + * brig/brig-lang.c: Add support for whole program optimizations by marking the kernels externally visible. * brig/brigfrontend/brig-branch-inst-handler.cc: See above. diff --git a/gcc/brig/brigfrontend/brig-code-entry-handler.cc b/gcc/brig/brigfrontend/brig-code-entry-handler.cc index 54b53fd..36a8deb 100644 --- a/gcc/brig/brigfrontend/brig-code-entry-handler.cc +++ b/gcc/brig/brigfrontend/brig-code-entry-handler.cc @@ -1048,7 +1048,6 @@ brig_code_entry_handler::expand_builtin (BrigOpcode16_t brig_opcode, tree local_id_var = m_parent.m_cf->m_local_id_vars[dim]; tree wg_id_var = m_parent.m_cf->m_wg_id_vars[dim]; tree wg_size_var = m_parent.m_cf->m_wg_size_vars[dim]; - tree grid_size_var = m_parent.m_cf->m_grid_size_vars[dim]; tree wg_id_x_wg_size = build2 (MULT_EXPR, uint32_type_node, convert (uint32_type_node, wg_id_var), @@ -1056,15 +1055,8 @@ brig_code_entry_handler::expand_builtin (BrigOpcode16_t brig_opcode, tree sum = build2 (PLUS_EXPR, uint32_type_node, wg_id_x_wg_size, local_id_var); - /* We need a modulo here because of work-groups which have dimensions - larger than the grid size :( TO CHECK: is this really allowed in the - specs? */ - tree modulo - = build2 (TRUNC_MOD_EXPR, uint32_type_node, sum, grid_size_var); - return add_temp_var (std::string ("workitemabsid_") - + (char) ((int) 'x' + dim), - modulo); + + (char) ((int) 'x' + dim), sum); } else if (brig_opcode == BRIG_OPCODE_WORKITEMFLATID) { |