aboutsummaryrefslogtreecommitdiff
path: root/gcc/hsa-brig.c
diff options
context:
space:
mode:
authorMartin Liska <mliska@suse.cz>2016-03-31 19:10:15 +0200
committerMartin Liska <marxin@gcc.gnu.org>2016-03-31 17:10:15 +0000
commit320c1a36793e0f408924b38bc006e6b791dceff7 (patch)
tree5ed5ca7dff70ab72534570302bae6e0c19e1b345 /gcc/hsa-brig.c
parent8f80cbdb26ca754ff3b6fe6c735eca6dd01401fa (diff)
downloadgcc-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.c5
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;