080dc24383
Add flag -fassume-phsa that is on by default. If -fno-assume-phsa is given, these optimizations are disabled. With this flag, gccbrig can generate GENERIC that assumes we are targeting a phsa-runtime based implementation, which allows us to expose the work-item context accesses to retrieve WI IDs etc. which helps optimizers. First optimization that takes advantage of this is to get rid of the setworkitemid calls whenever we have non-inlined calls that use IDs internally. Other optimizations added in this commit: - expand absoluteid to similar level of simplicity as workitemid. At the moment absoluteid is the best indexing ID to end up with WG vectorization. - propagate ID variables closer to their uses. This is mainly to avoid known useless casts, which confuse at least scalar evolution analysis. - use signed long long for storing IDs. Unsigned integers have defined wraparound semantics, which confuse at least scalar evolution analysis, leading to unvectorizable WI loops. - also refactor some BRIG function generation helpers to brig_function. - no point in having the wi-loop as a for-loop. It's really a do...while and SCEV can analyze it just fine still. - add consts to ptrs etc. in BRIG builtin defs. Improves optimization opportunities. - add qualifiers to generated function parameters. Const and restrict on the hidden local/private pointers, the arg buffer and the context pointer help some optimizations. From-SVN: r259957
127 lines
4.3 KiB
Plaintext
127 lines
4.3 KiB
Plaintext
2018-05-04 Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com>
|
||
|
||
* include/internal/phsa-rt.h: Whitespace cleanup.
|
||
* include/internal/workitems.h: Store work item ID data to easily
|
||
accessible locations.
|
||
* rt/workitems.c: Same.
|
||
|
||
2018-05-04 Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com>
|
||
|
||
* rt/workitems.c: Fix an alloca stack underflow.
|
||
|
||
2018-04-18 David Malcolm <dmalcolm@redhat.com>
|
||
|
||
PR jit/85384
|
||
* configure: Regenerate.
|
||
|
||
2018-01-03 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
Update copyright years.
|
||
|
||
2017-09-27 Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com>
|
||
|
||
* include/internal/phsa-rt.h: Support for improved group segment
|
||
handling with a stack-like allocation scheme.
|
||
* include/internal/workitems.h: Likewise.
|
||
* rt/workitems.c: Likewise.
|
||
|
||
2017-09-25 Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com>
|
||
|
||
* rt/workitems.c: Assume the host runtime allocates the work group
|
||
memory.
|
||
|
||
2017-05-03 Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com>
|
||
|
||
* 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.
|
||
|
||
2017-02-01 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* 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.
|
||
|
||
2017-01-27 Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com>
|
||
|
||
* 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.
|
||
|
||
2017-01-26 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
Update copyright years.
|
||
|
||
2017-01-25 Thomas Schwinge <thomas@codesourcery.com>
|
||
|
||
* config.h.in: Remove stale file.
|
||
|
||
* configure.ac: Don't instantiate AC_CONFIG_MACRO_DIR.
|
||
* configure: Regenerate.
|
||
|
||
2017-01-25 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
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.
|
||
|
||
2017-01-24 Pekka Jääskeläinen <pekka@parmance.com>
|
||
Martin Jambor <mjambor@suse.cz>
|
||
|
||
* 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.
|
||
|
||
Copyright (C) 2017-2018 Free Software Foundation, Inc.
|
||
|
||
Copying and distribution of this file, with or without modification,
|
||
are permitted in any medium without royalty provided the copyright
|
||
notice and this notice are preserved.
|