aboutsummaryrefslogtreecommitdiff
path: root/libhsail-rt
AgeCommit message (Collapse)AuthorFilesLines
2018-01-03Update copyright years.Jakub Jelinek18-19/+23
From-SVN: r256169
2017-09-27[BRIGFE] Improved support for function and module scope groupPekka Jääskeläinen4-12/+31
segment variables. PRM specs defines function and module scope group segment variables as an experimental feature. However, PRM test suite uses and hcc relies on them. In addition, hcc assumes certain group variable layout in its dynamic group segment allocation code. We cannot have global group memory offsets if we want to both have kernel-specific group segment size and multiple kernels calling the same functions that use function scope group memory variables. Now group segment is handled by separate book keeping of module scope and function (kernel) offsets. Each function has a "frame" in the group segment offset to which is given as an argument. From-SVN: r253233
2017-09-25BRIGFE fixes:Pekka Jääskeläinen2-23/+4
* brig-builtins.def: Treat HSAIL barrier builtins as setjmp/longjump style functions. * brigfrontend/brig-to-generic.cc: Ensure per WI copies of private variables are aligned too. * rt/workitems.c: Assume the host runtime allocates the work group memory. From-SVN: r253160
2017-05-04Minor BRIG/HSAIL frontend updates and bug fixes:Pekka Jääskeläinen3-14/+33
* brig-builtins.def: Added a builtin for class_f64. * builtin-types.def: Added a builtin type needed by class_f64. * brigfrontend/brig-code-entry-handler.cc (brig_code_entry_handler::build_address_operand): Fix a bug with reg+offset addressing on 32b segments. In large mode, the offset is treated as 32bits unless it's global, readonly or kernarg address space. * rt/workitems.c: Removed a leftover comment. * rt/arithmetic.c (__hsail_class_f32, __hsail_class_f64): Fix the check for signaling/non-signalling NaN. Add class_f64 default implementation. From-SVN: r247576
2017-02-01configure.tgt: Fix i?86-*-linux* entry.Jakub Jelinek8-113/+90
* configure.tgt: Fix i?86-*-linux* entry. * rt/sat_arithmetic.c (__hsail_sat_add_u32, __hsail_sat_add_u64, __hsail_sat_add_s32, __hsail_sat_add_s64): Use __builtin_add_overflow. (__hsail_sat_sub_u8, __hsail_sat_sub_u16): Remove pointless for overflow over maximum. (__hsail_sat_sub_u32, __hsail_sat_sub_u64, __hsail_sat_sub_s32, __hsail_sat_sub_s64): Use __builtin_sub_overflow. (__hsail_sat_mul_u32, __hsail_sat_mul_u64, __hsail_sat_mul_s32, __hsail_sat_mul_s64): Use __builtin_mul_overflow. * rt/arithmetic.c (__hsail_borrow_u32, __hsail_borrow_u64): Use __builtin_sub_overflow_p. (__hsail_carry_u32, __hsail_carry_u64): Use __builtin_add_overflow_p. * rt/misc.c (__hsail_groupbaseptr, __hsail_kernargbaseptr_u64): Cast pointers to uintptr_t first before casting to some other integral type. * rt/segment.c (__hsail_segmentp_private, __hsail_segmentp_group): Likewise. * rt/queue.c (__hsail_ldqueuereadindex, __hsail_ldqueuewriteindex, __hsail_addqueuewriteindex, __hsail_casqueuewriteindex, __hsail_stqueuereadindex, __hsail_stqueuewriteindex): Cast integral value to uintptr_t first before casting to pointer. * rt/workitems.c (__hsail_alloca_pop_frame): Cast memcpy first argument to void * to avoid warning. From-SVN: r245080
2017-01-27[brigfe] Small fixesMartin Jambor3-4/+55
2017-01-27 Pekka Jaaskelainen <pekka.jaaskelainen@parmance.com> * configure.ac: Moved the white list of enabling BRIG FE to libhsail-rt/configure.tgt. * configure: Regenerated. * MAINTAINERS: Updated maintainers for BRIG FE and libhsail-rt. gcc/ * builtin-types.def: Use unsigned_char_type_node for BT_UINT8. Use uint16_type_node for BT_UINT16. gcc/brig/ * config-lang.in: Removed stale target-libbrig reference. libhsail-rt/ * configure.tgt: Moved the white list of supported targets here from configure.ac. Added i[3456789]86-*-linux* as a supported env for the BRIG FE. * README: Added a proper description of what libhsail-rt is. From-SVN: r244978
2017-01-26update-copyright.py: Add libhsail-rt to self.default_dirs and call ↵Jakub Jelinek1-0/+4
self.add_dir on it. contrib/ * update-copyright.py: Add libhsail-rt to self.default_dirs and call self.add_dir on it. Add Intel Corporation to external authors. gcc/ * brig-builtins.def: Update copyright years. * config/arm/arm_acle_builtins.def: Update copyright years. gcc/brig/ Update copyright years. gcc/testsuite/ * brig.dg/dg.exp: Update copyright years. * lib/brig-dg.exp: Update copyright years. * lib/brig.exp: Update copyright years. libhsail-rt/ Update copyright years. libstdc++-v3/ * libsupc++/eh_atomics.h: Update copyright years. * testsuite/20_util/unique_ptr/cons/default.cc: Update copyright years. From-SVN: r244920
2017-01-26update-copyright.py: Add libhsail-rt to self.default_dirs and call ↵Jakub Jelinek16-17/+17
self.add_dir on it. contrib/ * update-copyright.py: Add libhsail-rt to self.default_dirs and call self.add_dir on it. Add Intel Corporation to external authors. gcc/ * brig-builtins.def: Update copyright years. * config/arm/arm_acle_builtins.def: Update copyright years. gcc/brig/ Update copyright years. gcc/testsuite/ * brig.dg/dg.exp: Update copyright years. * lib/brig-dg.exp: Update copyright years. * lib/brig.exp: Update copyright years. libhsail-rt/ Update copyright years. libstdc++-v3/ * libsupc++/eh_atomics.h: Update copyright years. * testsuite/20_util/unique_ptr/cons/default.cc: Update copyright years. From-SVN: r244919
2017-01-25libhsail-rt: Fix some Autotools issuesThomas Schwinge4-223/+15
contrib/ * gcc_update (files_and_dependencies): Care for "libhsail-rt". libhsail-rt/ * configure.ac: Don't instantiate AC_CONFIG_MACRO_DIR. * configure: Regenerate. libhsail-rt/ * config.h.in: Remove stale file. From-SVN: r244902
2017-01-25Add svn:executable property.Jakub Jelinek1-0/+0
From-SVN: r244896
2017-01-25re PR other/79046 (g++ -print-file-name=plugin uses full version number in path)Jakub Jelinek6-53/+112
PR other/79046 * configure.ac: Add GCC_BASE_VER. * Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to get version from BASE-VER file. (ACLOCAL_AMFLAGS): Set to -I .. -I ../config . * aclocal.m4: Regenerated. * configure: Regenerated. * Makefile.in: Regenerated. From-SVN: r244895
2017-01-24Brig front-endPekka Jääskeläinen25-0/+22510
2017-01-24 Pekka Jääskeläinen <pekka@parmance.com> Martin Jambor <mjambor@suse.cz> * Makefile.def (target_modules): Added libhsail-rt. (languages): Added language brig. * Makefile.in: Regenerated. * configure.ac (TOPLEVEL_CONFIGURE_ARGUMENTS): Added tgarget-libhsail-rt. Make brig unsupported on untested architectures. * configure: Regenerated. gcc/ * brig-builtins.def: New file. * builtins.def (DEF_HSAIL_BUILTIN): New macro. (DEF_HSAIL_ATOMIC_BUILTIN): Likewise. (DEF_HSAIL_SAT_BUILTIN): Likewise. (DEF_HSAIL_INTR_BUILTIN): Likewise. (DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN): Likewise. * builtin-types.def (BT_INT8): New. (BT_INT16): Likewise. (BT_UINT8): Likewise. (BT_UINT16): Likewise. (BT_FN_ULONG): Likewise. (BT_FN_UINT_INT): Likewise. (BT_FN_UINT_ULONG): Likewise. (BT_FN_UINT_LONG): Likewise. (BT_FN_UINT_PTR): Likewise. (BT_FN_ULONG_PTR): Likewise. (BT_FN_INT8_FLOAT): Likewise. (BT_FN_INT16_FLOAT): Likewise. (BT_FN_UINT32_FLOAT): Likewise. (BT_FN_UINT16_FLOAT): Likewise. (BT_FN_UINT8_FLOAT): Likewise. (BT_FN_UINT64_FLOAT): Likewise. (BT_FN_UINT16_UINT32): Likewise. (BT_FN_UINT32_UINT16): Likewise. (BT_FN_UINT16_UINT16_UINT16): Likewise. (BT_FN_INT_PTR_INT): Likewise. (BT_FN_UINT_PTR_UINT): Likewise. (BT_FN_LONG_PTR_LONG): Likewise. (BT_FN_ULONG_PTR_ULONG): Likewise. (BT_FN_VOID_UINT64_UINT64): Likewise. (BT_FN_UINT8_UINT8_UINT8): Likewise. (BT_FN_INT8_INT8_INT8): Likewise. (BT_FN_INT16_INT16_INT16): Likewise. (BT_FN_INT_INT_INT): Likewise. (BT_FN_UINT_FLOAT_UINT): Likewise. (BT_FN_FLOAT_UINT_UINT): Likewise. (BT_FN_ULONG_UINT_UINT): Likewise. (BT_FN_ULONG_UINT_PTR): Likewise. (BT_FN_ULONG_ULONG_ULONG): Likewise. (BT_FN_UINT_UINT_UINT): Likewise. (BT_FN_VOID_UINT_PTR): Likewise. (BT_FN_UINT_UINT_PTR: Likewise. (BT_FN_UINT32_UINT64_PTR): Likewise. (BT_FN_INT_INT_UINT_UINT): Likewise. (BT_FN_UINT_UINT_UINT_UINT): Likewise. (BT_FN_UINT_UINT_UINT_PTR): Likewise. (BT_FN_UINT_ULONG_ULONG_UINT): Likewise. (BT_FN_ULONG_ULONG_ULONG_ULONG): Likewise. (BT_FN_LONG_LONG_UINT_UINT): Likewise. (BT_FN_ULONG_ULONG_UINT_UINT): Likewise. (BT_FN_VOID_UINT32_UINT64_PTR): Likewise. (BT_FN_VOID_UINT32_UINT32_PTR): Likewise. (BT_FN_UINT_UINT_UINT_UINT_UINT): Likewise. (BT_FN_UINT_FLOAT_FLOAT_FLOAT_FLOAT): Likewise. (BT_FN_ULONG_ULONG_ULONG_UINT_UINT): Likewise. * doc/frontends.texi: List BRIG FE. * doc/install.texi (Testing): Add BRIG tesring requirements. * doc/invoke.texi (Overall Options): Mention BRIG. * doc/standards.texi (Standards): Doucment BRIG HSA version. gcc/brig/ * Make-lang.in: New file. * brig-builtins.h: Likewise. * brig-c.h: Likewise. * brig-lang.c: Likewise. * brigspec.c: Likewise. * config-lang.in: Likewise. * lang-specs.h: Likewise. * lang.opt: Likewise. * brigfrontend/brig-arg-block-handler.cc: Likewise. * brigfrontend/brig-atomic-inst-handler.cc: Likewise. * brigfrontend/brig-basic-inst-handler.cc: Likewise. * brigfrontend/brig-branch-inst-handler.cc: Likewise. * brigfrontend/brig-cmp-inst-handler.cc: Likewise. * brigfrontend/brig-code-entry-handler.cc: Likewise. * brigfrontend/brig-code-entry-handler.h: Likewise. * brigfrontend/brig-comment-handler.cc: Likewise. * brigfrontend/brig-control-handler.cc: Likewise. * brigfrontend/brig-copy-move-inst-handler.cc: Likewise. * brigfrontend/brig-cvt-inst-handler.cc: Likewise. * brigfrontend/brig-fbarrier-handler.cc: Likewise. * brigfrontend/brig-function-handler.cc: Likewise. * brigfrontend/brig-function.cc: Likewise. * brigfrontend/brig-function.h: Likewise. * brigfrontend/brig-inst-mod-handler.cc: Likewise. * brigfrontend/brig-label-handler.cc: Likewise. * brigfrontend/brig-lane-inst-handler.cc: Likewise. * brigfrontend/brig-machine.c: Likewise. * brigfrontend/brig-machine.h: Likewise. * brigfrontend/brig-mem-inst-handler.cc: Likewise. * brigfrontend/brig-module-handler.cc: Likewise. * brigfrontend/brig-queue-inst-handler.cc: Likewise. * brigfrontend/brig-seg-inst-handler.cc: Likewise. * brigfrontend/brig-signal-inst-handler.cc: Likewise. * brigfrontend/brig-to-generic.cc: Likewise. * brigfrontend/brig-to-generic.h: Likewise. * brigfrontend/brig-util.cc: Likewise. * brigfrontend/brig-util.h: Likewise. * brigfrontend/brig-variable-handler.cc: Likewise. * brigfrontend/phsa.h: Likewise. gcc/testsuite/ * lib/brig-dg.exp: New file. * lib/brig.exp: Likewise. * brig.dg/README: Likewise. * brig.dg/dg.exp: Likewise. * brig.dg/test/gimple/alloca.hsail: Likewise. * brig.dg/test/gimple/atomics.hsail: Likewise. * brig.dg/test/gimple/branches.hsail: Likewise. * brig.dg/test/gimple/fbarrier.hsail: Likewise. * brig.dg/test/gimple/function_calls.hsail: Likewise. * brig.dg/test/gimple/kernarg.hsail: Likewise. * brig.dg/test/gimple/mem.hsail: Likewise. * brig.dg/test/gimple/mulhi.hsail: Likewise. * brig.dg/test/gimple/packed.hsail: Likewise. * brig.dg/test/gimple/smoke_test.hsail: Likewise. * brig.dg/test/gimple/variables.hsail: Likewise. * brig.dg/test/gimple/vector.hsail: Likewise. include/ * hsa.h: Moved here from libgomp/plugin/hsa.h. libgomp/ * plugin/hsa.h: Moved to top level include. * plugin/plugin-hsa.c: Chanfgd include of hsa.h accordingly. libhsail-rt/ * Makefile.am: New file. * target-config.h.in: Likewise. * configure.ac: Likewise. * configure: Likewise. * config.h.in: Likewise. * aclocal.m4: Likewise. * README: Likewise. * Makefile.in: Likewise. * include/internal/fibers.h: Likewise. * include/internal/phsa-queue-interface.h: Likewise. * include/internal/phsa-rt.h: Likewise. * include/internal/workitems.h: Likewise. * rt/arithmetic.c: Likewise. * rt/atomics.c: Likewise. * rt/bitstring.c: Likewise. * rt/fbarrier.c: Likewise. * rt/fibers.c: Likewise. * rt/fp16.c: Likewise. * rt/misc.c: Likewise. * rt/multimedia.c: Likewise. * rt/queue.c: Likewise. * rt/sat_arithmetic.c: Likewise. * rt/segment.c: Likewise. * rt/workitems.c: Likewise. Co-Authored-By: Martin Jambor <mjambor@suse.cz> From-SVN: r244867