diff options
author | Martin Liska <mliska@suse.cz> | 2016-03-31 19:10:15 +0200 |
---|---|---|
committer | Martin Liska <marxin@gcc.gnu.org> | 2016-03-31 17:10:15 +0000 |
commit | 320c1a36793e0f408924b38bc006e6b791dceff7 (patch) | |
tree | 5ed5ca7dff70ab72534570302bae6e0c19e1b345 /gcc/hsa-brig.c | |
parent | 8f80cbdb26ca754ff3b6fe6c735eca6dd01401fa (diff) | |
download | gcc-320c1a36793e0f408924b38bc006e6b791dceff7.zip gcc-320c1a36793e0f408924b38bc006e6b791dceff7.tar.gz gcc-320c1a36793e0f408924b38bc006e6b791dceff7.tar.bz2 |
HSA: support alignment for hsa_symbols (PR hsa/70391)
PR hsa/70391
* hsa-brig.c (emit_directive_variable): Emit alignment
according to hsa_symbol::m_align.
* hsa-dump.c (hsa_byte_alignment): Move the function to
another file.
(dump_hsa_symbol): Dump alignment of HSA symbols.
* hsa-gen.c (get_symbol_for_decl): Set-up alignment
of a symbol.
(gen_hsa_addr_with_align): New function.
(hsa_bitmemref_alignment): Use newly added function.
(gen_hsa_insns_for_load): Likewise.
(gen_hsa_insns_for_store): Likewise.
(gen_hsa_memory_copy): New argument added.
(gen_hsa_insns_for_single_assignment): Respect
alignment for assignments processed via
gen_hsa_memory_copy.
(gen_hsa_insns_for_direct_call): Likewise.
(gen_hsa_insns_for_return): Likewise.
(gen_function_def_parameters): Set default
alignment.
* hsa.c (hsa_object_alignment): New function.
(hsa_byte_alignment): Pasted function.
* hsa.h (hsa_symbol::m_align): New field.
From-SVN: r234643
Diffstat (limited to 'gcc/hsa-brig.c')
-rw-r--r-- | gcc/hsa-brig.c | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/gcc/hsa-brig.c b/gcc/hsa-brig.c index 9b6c0b8..ee587db 100644 --- a/gcc/hsa-brig.c +++ b/gcc/hsa-brig.c @@ -605,10 +605,7 @@ emit_directive_variable (struct hsa_symbol *symbol) dirvar.init = 0; dirvar.type = lendian16 (symbol->m_type); dirvar.segment = symbol->m_segment; - /* TODO: Once we are able to access global variables, we must copy their - alignment. */ - dirvar.align = MAX (hsa_natural_alignment (dirvar.type), - (BrigAlignment8_t) BRIG_ALIGNMENT_4); + dirvar.align = symbol->m_align; dirvar.linkage = symbol->m_linkage; dirvar.dim.lo = symbol->m_dim; dirvar.dim.hi = symbol->m_dim >> 32; |