Name |
Last commit
|
Last update |
---|---|---|
.. | ||
brigfrontend | ||
ChangeLog | ||
Make-lang.in | ||
brig-builtins.h | ||
brig-c.h | ||
brig-lang.c | ||
brigspec.c | ||
config-lang.in | ||
gccbrig.texi | ||
lang-specs.h | ||
lang.opt |
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
Name |
Last commit
|
Last update |
---|---|---|
.. | ||
brigfrontend | Loading commit data... | |
ChangeLog | Loading commit data... | |
Make-lang.in | Loading commit data... | |
brig-builtins.h | Loading commit data... | |
brig-c.h | Loading commit data... | |
brig-lang.c | Loading commit data... | |
brigspec.c | Loading commit data... | |
config-lang.in | Loading commit data... | |
gccbrig.texi | Loading commit data... | |
lang-specs.h | Loading commit data... | |
lang.opt | Loading commit data... |