OMP_CLAUSE_TILE will be used for the OpenMP 5.1 loop transformation construct "omp tile".
gcc/ChangeLog: * tree-core.h (enum omp_clause_code): Rename OMP_CLAUSE_TILE. * tree.h (OMP_CLAUSE_TILE_LIST): Rename to ... (OMP_CLAUSE_OACC_TILE_LIST): ... this. (OMP_CLAUSE_TILE_ITERVAR): Rename to ... (OMP_CLAUSE_OACC_TILE_ITERVAR): ... this. (OMP_CLAUSE_TILE_COUNT): Rename to ... (OMP_CLAUSE_OACC_TILE_COUNT): this. * gimplify.cc (gimplify_scan_omp_clauses): Adjust to renamings. (gimplify_adjust_omp_clauses): Likewise. (gimplify_omp_for): Likewise. * omp-general.cc (omp_extract_for_data): Likewise. * omp-low.cc (scan_sharing_clauses): Likewise. (lower_oacc_head_mark): Likewise. * tree-nested.cc (convert_nonlocal_omp_clauses): Likewise. (convert_local_omp_clauses): Likewise. * tree-pretty-print.cc (dump_omp_clause): Likewise. * tree.cc: Likewise. gcc/c-family/ChangeLog: * c-omp.cc (c_oacc_split_loop_clauses): Adjust to renamings. gcc/c/ChangeLog: * c-parser.cc (c_parser_omp_clause_collapse): Adjust to renamings. (c_parser_oacc_clause_tile): Likewise. (c_parser_omp_for_loop): Likewise. * c-typeck.cc (c_finish_omp_clauses): Likewise. gcc/cp/ChangeLog: * parser.cc (cp_parser_oacc_clause_tile): Adjust to renamings. (cp_parser_omp_clause_collapse): Likewise. (cp_parser_omp_for_loop): Likewise. * pt.cc (tsubst_omp_clauses): Likewise. * semantics.cc (finish_omp_clauses): Likewise. (finish_omp_for): Likewise. gcc/fortran/ChangeLog: * openmp.cc (enum omp_mask2): Adjust to renamings. (gfc_match_omp_clauses): Likewise. * trans-openmp.cc (gfc_trans_omp_clauses): Likewise. --- gcc/c-family/c-omp.cc | 2 +- gcc/c/c-parser.cc | 12 ++++++------ gcc/c/c-typeck.cc | 2 +- gcc/cp/parser.cc | 12 ++++++------ gcc/cp/pt.cc | 2 +- gcc/cp/semantics.cc | 8 ++++---- gcc/fortran/openmp.cc | 6 +++--- gcc/fortran/trans-openmp.cc | 4 ++-- gcc/gimplify.cc | 8 ++++---- gcc/omp-general.cc | 8 ++++---- gcc/omp-low.cc | 6 +++--- gcc/tree-core.h | 2 +- gcc/tree-nested.cc | 4 ++-- gcc/tree-pretty-print.cc | 4 ++-- gcc/tree.cc | 2 +- gcc/tree.h | 12 ++++++------ 16 files changed, 47 insertions(+), 47 deletions(-) diff --git a/gcc/c-family/c-omp.cc b/gcc/c-family/c-omp.cc index 85ba9c528c8..fec7f337772 100644 --- a/gcc/c-family/c-omp.cc +++ b/gcc/c-family/c-omp.cc @@ -1749,7 +1749,7 @@ c_oacc_split_loop_clauses (tree clauses, tree *not_loop_clauses, { /* Loop clauses. */ case OMP_CLAUSE_COLLAPSE: - case OMP_CLAUSE_TILE: + case OMP_CLAUSE_OACC_TILE: case OMP_CLAUSE_GANG: case OMP_CLAUSE_WORKER: case OMP_CLAUSE_VECTOR: diff --git a/gcc/c/c-parser.cc b/gcc/c/c-parser.cc index 9d875befccc..e7c9da99552 100644 --- a/gcc/c/c-parser.cc +++ b/gcc/c/c-parser.cc @@ -14183,7 +14183,7 @@ c_parser_omp_clause_collapse (c_parser *parser, tree list) location_t loc; check_no_duplicate_clause (list, OMP_CLAUSE_COLLAPSE, "collapse"); - check_no_duplicate_clause (list, OMP_CLAUSE_TILE, "tile"); + check_no_duplicate_clause (list, OMP_CLAUSE_OACC_TILE, "tile"); loc = c_parser_peek_token (parser)->location; matching_parens parens; @@ -15349,7 +15349,7 @@ c_parser_oacc_clause_tile (c_parser *parser, tree list) location_t loc; tree tile = NULL_TREE; - check_no_duplicate_clause (list, OMP_CLAUSE_TILE, "tile"); + check_no_duplicate_clause (list, OMP_CLAUSE_OACC_TILE, "tile"); check_no_duplicate_clause (list, OMP_CLAUSE_COLLAPSE, "collapse"); loc = c_parser_peek_token (parser)->location; @@ -15401,9 +15401,9 @@ c_parser_oacc_clause_tile (c_parser *parser, tree list) /* Consume the trailing ')'. */ c_parser_consume_token (parser); - c = build_omp_clause (loc, OMP_CLAUSE_TILE); + c = build_omp_clause (loc, OMP_CLAUSE_OACC_TILE); tile = nreverse (tile); - OMP_CLAUSE_TILE_LIST (c) = tile; + OMP_CLAUSE_OACC_TILE_LIST (c) = tile; OMP_CLAUSE_CHAIN (c) = list; return c; } @@ -20270,10 +20270,10 @@ c_parser_omp_for_loop (location_t loc, c_parser *parser, enum tree_code code, for (cl = clauses; cl; cl = OMP_CLAUSE_CHAIN (cl)) if (OMP_CLAUSE_CODE (cl) == OMP_CLAUSE_COLLAPSE) collapse = tree_to_shwi (OMP_CLAUSE_COLLAPSE_EXPR (cl)); - else if (OMP_CLAUSE_CODE (cl) == OMP_CLAUSE_TILE) + else if (OMP_CLAUSE_CODE (cl) == OMP_CLAUSE_OACC_TILE) { tiling = true; - collapse = list_length (OMP_CLAUSE_TILE_LIST (cl)); + collapse = list_length (OMP_CLAUSE_OACC_TILE_LIST (cl)); } else if (OMP_CLAUSE_CODE (cl) == OMP_CLAUSE_ORDERED && OMP_CLAUSE_ORDERED_EXPR (cl)) diff --git a/gcc/c/c-typeck.cc b/gcc/c/c-typeck.cc index bffea79b441..40df7bb0069 100644 --- a/gcc/c/c-typeck.cc +++ b/gcc/c/c-typeck.cc @@ -15872,7 +15872,7 @@ c_finish_omp_clauses (tree clauses, enum c_omp_region_type ort) case OMP_CLAUSE_GANG: case OMP_CLAUSE_WORKER: case OMP_CLAUSE_VECTOR: - case OMP_CLAUSE_TILE: + case OMP_CLAUSE_OACC_TILE: case OMP_CLAUSE_IF_PRESENT: case OMP_CLAUSE_FINALIZE: case OMP_CLAUSE_NOHOST: diff --git a/gcc/cp/parser.cc b/gcc/cp/parser.cc index 7034fdf49a4..90af40c4dbc 100644 --- a/gcc/cp/parser.cc +++ b/gcc/cp/parser.cc @@ -37981,7 +37981,7 @@ cp_parser_oacc_clause_tile (cp_parser *parser, location_t clause_loc, tree list) so, but the spec authors never considered such a case and have differing opinions on what it might mean, including 'not allowed'.) */ - check_no_duplicate_clause (list, OMP_CLAUSE_TILE, "tile", clause_loc); + check_no_duplicate_clause (list, OMP_CLAUSE_OACC_TILE, "tile", clause_loc); check_no_duplicate_clause (list, OMP_CLAUSE_COLLAPSE, "collapse", clause_loc); @@ -38010,9 +38010,9 @@ cp_parser_oacc_clause_tile (cp_parser *parser, location_t clause_loc, tree list) /* Consume the trailing ')'. */ cp_lexer_consume_token (parser->lexer); - c = build_omp_clause (clause_loc, OMP_CLAUSE_TILE); + c = build_omp_clause (clause_loc, OMP_CLAUSE_OACC_TILE); tile = nreverse (tile); - OMP_CLAUSE_TILE_LIST (c) = tile; + OMP_CLAUSE_OACC_TILE_LIST (c) = tile; OMP_CLAUSE_CHAIN (c) = list; return c; } @@ -38125,7 +38125,7 @@ cp_parser_omp_clause_collapse (cp_parser *parser, tree list, location_t location } check_no_duplicate_clause (list, OMP_CLAUSE_COLLAPSE, "collapse", location); - check_no_duplicate_clause (list, OMP_CLAUSE_TILE, "tile", location); + check_no_duplicate_clause (list, OMP_CLAUSE_OACC_TILE, "tile", location); c = build_omp_clause (loc, OMP_CLAUSE_COLLAPSE); OMP_CLAUSE_CHAIN (c) = list; OMP_CLAUSE_COLLAPSE_EXPR (c) = num; @@ -43654,10 +43654,10 @@ cp_parser_omp_for_loop (cp_parser *parser, enum tree_code code, tree clauses, for (cl = clauses; cl; cl = OMP_CLAUSE_CHAIN (cl)) if (OMP_CLAUSE_CODE (cl) == OMP_CLAUSE_COLLAPSE) collapse = tree_to_shwi (OMP_CLAUSE_COLLAPSE_EXPR (cl)); - else if (OMP_CLAUSE_CODE (cl) == OMP_CLAUSE_TILE) + else if (OMP_CLAUSE_CODE (cl) == OMP_CLAUSE_OACC_TILE) { tiling = true; - collapse = list_length (OMP_CLAUSE_TILE_LIST (cl)); + collapse = list_length (OMP_CLAUSE_OACC_TILE_LIST (cl)); } else if (OMP_CLAUSE_CODE (cl) == OMP_CLAUSE_ORDERED && OMP_CLAUSE_ORDERED_EXPR (cl)) diff --git a/gcc/cp/pt.cc b/gcc/cp/pt.cc index 63b2d1f7a45..16197b17e5a 100644 --- a/gcc/cp/pt.cc +++ b/gcc/cp/pt.cc @@ -18061,7 +18061,7 @@ tsubst_omp_clauses (tree clauses, enum c_omp_region_type ort, = tsubst_expr (OMP_CLAUSE_NUM_TEAMS_LOWER_EXPR (oc), args, complain, in_decl); /* FALLTHRU */ - case OMP_CLAUSE_TILE: + case OMP_CLAUSE_OACC_TILE: case OMP_CLAUSE_IF: case OMP_CLAUSE_NUM_THREADS: case OMP_CLAUSE_SCHEDULE: diff --git a/gcc/cp/semantics.cc b/gcc/cp/semantics.cc index ac49502eea4..c87e252ff06 100644 --- a/gcc/cp/semantics.cc +++ b/gcc/cp/semantics.cc @@ -8729,8 +8729,8 @@ finish_omp_clauses (tree clauses, enum c_omp_region_type ort) mergeable_seen = true; break; - case OMP_CLAUSE_TILE: - for (tree list = OMP_CLAUSE_TILE_LIST (c); !remove && list; + case OMP_CLAUSE_OACC_TILE: + for (tree list = OMP_CLAUSE_OACC_TILE_LIST (c); !remove && list; list = TREE_CHAIN (list)) { t = TREE_VALUE (list); @@ -10498,9 +10498,9 @@ finish_omp_for (location_t locus, enum tree_code code, tree declv, { tree c; - c = omp_find_clause (clauses, OMP_CLAUSE_TILE); + c = omp_find_clause (clauses, OMP_CLAUSE_OACC_TILE); if (c) - collapse = list_length (OMP_CLAUSE_TILE_LIST (c)); + collapse = list_length (OMP_CLAUSE_OACC_TILE_LIST (c)); else { c = omp_find_clause (clauses, OMP_CLAUSE_COLLAPSE); diff --git a/gcc/fortran/openmp.cc b/gcc/fortran/openmp.cc index e54f016b170..ec707d977cd 100644 --- a/gcc/fortran/openmp.cc +++ b/gcc/fortran/openmp.cc @@ -1075,7 +1075,7 @@ enum omp_mask2 OMP_CLAUSE_WAIT, OMP_CLAUSE_DELETE, OMP_CLAUSE_AUTO, - OMP_CLAUSE_TILE, + OMP_CLAUSE_OACC_TILE, OMP_CLAUSE_IF_PRESENT, OMP_CLAUSE_FINALIZE, OMP_CLAUSE_ATTACH, @@ -3478,7 +3478,7 @@ gfc_match_omp_clauses (gfc_omp_clauses **cp, const omp_mask mask, c->threads = needs_space = true; continue; } - if ((mask & OMP_CLAUSE_TILE) + if ((mask & OMP_CLAUSE_OACC_TILE) && !c->tile_list && match_oacc_expr_list ("tile (", &c->tile_list, true) == MATCH_YES) @@ -3677,7 +3677,7 @@ error: (omp_mask (OMP_CLAUSE_COLLAPSE) | OMP_CLAUSE_GANG | OMP_CLAUSE_WORKER \ | OMP_CLAUSE_VECTOR | OMP_CLAUSE_SEQ | OMP_CLAUSE_INDEPENDENT \ | OMP_CLAUSE_PRIVATE | OMP_CLAUSE_REDUCTION | OMP_CLAUSE_AUTO \ - | OMP_CLAUSE_TILE) + | OMP_CLAUSE_OACC_TILE) #define OACC_PARALLEL_LOOP_CLAUSES \ (OACC_LOOP_CLAUSES | OACC_PARALLEL_CLAUSES) #define OACC_KERNELS_LOOP_CLAUSES \ diff --git a/gcc/fortran/trans-openmp.cc b/gcc/fortran/trans-openmp.cc index c4a23f6e247..73c416c951d 100644 --- a/gcc/fortran/trans-openmp.cc +++ b/gcc/fortran/trans-openmp.cc @@ -4371,8 +4371,8 @@ gfc_trans_omp_clauses (stmtblock_t *block, gfc_omp_clauses *clauses, for (el = clauses->tile_list; el; el = el->next) vec_safe_push (tvec, gfc_convert_expr_to_tree (block, el->expr)); - c = build_omp_clause (gfc_get_location (&where), OMP_CLAUSE_TILE); - OMP_CLAUSE_TILE_LIST (c) = build_tree_list_vec (tvec); + c = build_omp_clause (gfc_get_location (&where), OMP_CLAUSE_OACC_TILE); + OMP_CLAUSE_OACC_TILE_LIST (c) = build_tree_list_vec (tvec); omp_clauses = gfc_trans_add_clause (c, omp_clauses); tvec->truncate (0); } diff --git a/gcc/gimplify.cc b/gcc/gimplify.cc index 2c160686533..14616eb5316 100644 --- a/gcc/gimplify.cc +++ b/gcc/gimplify.cc @@ -11923,7 +11923,7 @@ gimplify_scan_omp_clauses (tree *list_p, gimple_seq *pre_p, case OMP_CLAUSE_ORDERED: case OMP_CLAUSE_UNTIED: case OMP_CLAUSE_COLLAPSE: - case OMP_CLAUSE_TILE: + case OMP_CLAUSE_OACC_TILE: case OMP_CLAUSE_AUTO: case OMP_CLAUSE_SEQ: case OMP_CLAUSE_INDEPENDENT: @@ -13071,7 +13071,7 @@ gimplify_adjust_omp_clauses (gimple_seq *pre_p, gimple_seq body, tree *list_p, case OMP_CLAUSE_VECTOR: case OMP_CLAUSE_AUTO: case OMP_CLAUSE_SEQ: - case OMP_CLAUSE_TILE: + case OMP_CLAUSE_OACC_TILE: case OMP_CLAUSE_IF_PRESENT: case OMP_CLAUSE_FINALIZE: case OMP_CLAUSE_INCLUSIVE: @@ -13970,9 +13970,9 @@ gimplify_omp_for (tree *expr_p, gimple_seq *pre_p) c = omp_find_clause (OMP_FOR_CLAUSES (for_stmt), OMP_CLAUSE_COLLAPSE); if (c) collapse = tree_to_shwi (OMP_CLAUSE_COLLAPSE_EXPR (c)); - c = omp_find_clause (OMP_FOR_CLAUSES (for_stmt), OMP_CLAUSE_TILE); + c = omp_find_clause (OMP_FOR_CLAUSES (for_stmt), OMP_CLAUSE_OACC_TILE); if (c) - tile = list_length (OMP_CLAUSE_TILE_LIST (c)); + tile = list_length (OMP_CLAUSE_OACC_TILE_LIST (c)); c = omp_find_clause (OMP_FOR_CLAUSES (for_stmt), OMP_CLAUSE_ALLOCATE); hash_set<tree> *allocate_uids = NULL; if (c) diff --git a/gcc/omp-general.cc b/gcc/omp-general.cc index e29d695dcba..0f326128874 100644 --- a/gcc/omp-general.cc +++ b/gcc/omp-general.cc @@ -271,12 +271,12 @@ omp_extract_for_data (gomp_for *for_stmt, struct omp_for_data *fd, collapse_count = &OMP_CLAUSE_COLLAPSE_COUNT (t); } break; - case OMP_CLAUSE_TILE: - fd->tiling = OMP_CLAUSE_TILE_LIST (t); + case OMP_CLAUSE_OACC_TILE: + fd->tiling = OMP_CLAUSE_OACC_TILE_LIST (t); fd->collapse = list_length (fd->tiling); gcc_assert (fd->collapse); - collapse_iter = &OMP_CLAUSE_TILE_ITERVAR (t); - collapse_count = &OMP_CLAUSE_TILE_COUNT (t); + collapse_iter = &OMP_CLAUSE_OACC_TILE_ITERVAR (t); + collapse_count = &OMP_CLAUSE_OACC_TILE_COUNT (t); break; case OMP_CLAUSE__REDUCTEMP_: fd->have_reductemp = true; diff --git a/gcc/omp-low.cc b/gcc/omp-low.cc index 1818132830f..b5b2134ab17 100644 --- a/gcc/omp-low.cc +++ b/gcc/omp-low.cc @@ -1744,7 +1744,7 @@ scan_sharing_clauses (tree clauses, omp_context *ctx) case OMP_CLAUSE_INDEPENDENT: case OMP_CLAUSE_AUTO: case OMP_CLAUSE_SEQ: - case OMP_CLAUSE_TILE: + case OMP_CLAUSE_OACC_TILE: case OMP_CLAUSE__SIMT_: case OMP_CLAUSE_DEFAULT: case OMP_CLAUSE_NONTEMPORAL: @@ -1963,7 +1963,7 @@ scan_sharing_clauses (tree clauses, omp_context *ctx) case OMP_CLAUSE_INDEPENDENT: case OMP_CLAUSE_AUTO: case OMP_CLAUSE_SEQ: - case OMP_CLAUSE_TILE: + case OMP_CLAUSE_OACC_TILE: case OMP_CLAUSE__SIMT_: case OMP_CLAUSE_IF_PRESENT: case OMP_CLAUSE_FINALIZE: @@ -8376,7 +8376,7 @@ lower_oacc_head_mark (location_t loc, tree ddvar, tree clauses, tag |= OLF_INDEPENDENT; break; - case OMP_CLAUSE_TILE: + case OMP_CLAUSE_OACC_TILE: tag |= OLF_TILE; break; diff --git a/gcc/tree-core.h b/gcc/tree-core.h index e563408877e..f1429824158 100644 --- a/gcc/tree-core.h +++ b/gcc/tree-core.h @@ -515,7 +515,7 @@ enum omp_clause_code { OMP_CLAUSE_VECTOR_LENGTH, /* OpenACC clause: tile ( size-expr-list ). */ - OMP_CLAUSE_TILE, + OMP_CLAUSE_OACC_TILE, /* OpenACC clause: if_present. */ OMP_CLAUSE_IF_PRESENT, diff --git a/gcc/tree-nested.cc b/gcc/tree-nested.cc index 1418e1f7f56..ed115b5eb3f 100644 --- a/gcc/tree-nested.cc +++ b/gcc/tree-nested.cc @@ -1474,7 +1474,7 @@ convert_nonlocal_omp_clauses (tree *pclauses, struct walk_stmt_info *wi) case OMP_CLAUSE_DEFAULT: case OMP_CLAUSE_COPYIN: case OMP_CLAUSE_COLLAPSE: - case OMP_CLAUSE_TILE: + case OMP_CLAUSE_OACC_TILE: case OMP_CLAUSE_UNTIED: case OMP_CLAUSE_MERGEABLE: case OMP_CLAUSE_PROC_BIND: @@ -2270,7 +2270,7 @@ convert_local_omp_clauses (tree *pclauses, struct walk_stmt_info *wi) case OMP_CLAUSE_DEFAULT: case OMP_CLAUSE_COPYIN: case OMP_CLAUSE_COLLAPSE: - case OMP_CLAUSE_TILE: + case OMP_CLAUSE_OACC_TILE: case OMP_CLAUSE_UNTIED: case OMP_CLAUSE_MERGEABLE: case OMP_CLAUSE_PROC_BIND: diff --git a/gcc/tree-pretty-print.cc b/gcc/tree-pretty-print.cc index 588a992bcf3..cae81719e68 100644 --- a/gcc/tree-pretty-print.cc +++ b/gcc/tree-pretty-print.cc @@ -1416,9 +1416,9 @@ dump_omp_clause (pretty_printer *pp, tree clause, int spc, dump_flags_t flags) case OMP_CLAUSE_INDEPENDENT: pp_string (pp, "independent"); break; - case OMP_CLAUSE_TILE: + case OMP_CLAUSE_OACC_TILE: pp_string (pp, "tile("); - dump_generic_node (pp, OMP_CLAUSE_TILE_LIST (clause), + dump_generic_node (pp, OMP_CLAUSE_OACC_TILE_LIST (clause), spc, flags, false); pp_right_paren (pp); break; diff --git a/gcc/tree.cc b/gcc/tree.cc index 53e44367977..fc7e22d352f 100644 --- a/gcc/tree.cc +++ b/gcc/tree.cc @@ -322,7 +322,7 @@ unsigned const char omp_clause_num_ops[] = 1, /* OMP_CLAUSE_NUM_GANGS */ 1, /* OMP_CLAUSE_NUM_WORKERS */ 1, /* OMP_CLAUSE_VECTOR_LENGTH */ - 3, /* OMP_CLAUSE_TILE */ + 3, /* OMP_CLAUSE_OACC_TILE */ 0, /* OMP_CLAUSE_IF_PRESENT */ 0, /* OMP_CLAUSE_FINALIZE */ 0, /* OMP_CLAUSE_NOHOST */ diff --git a/gcc/tree.h b/gcc/tree.h index f33f815b712..6f7a6e7017a 100644 --- a/gcc/tree.h +++ b/gcc/tree.h @@ -1963,12 +1963,12 @@ class auto_suppress_location_wrappers #define OMP_CLAUSE_ENTER_TO(NODE) \ (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_ENTER)->base.public_flag) -#define OMP_CLAUSE_TILE_LIST(NODE) \ - OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_TILE), 0) -#define OMP_CLAUSE_TILE_ITERVAR(NODE) \ - OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_TILE), 1) -#define OMP_CLAUSE_TILE_COUNT(NODE) \ - OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_TILE), 2) +#define OMP_CLAUSE_OACC_TILE_LIST(NODE) \ + OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_OACC_TILE), 0) +#define OMP_CLAUSE_OACC_TILE_ITERVAR(NODE) \ + OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_OACC_TILE), 1) +#define OMP_CLAUSE_OACC_TILE_COUNT(NODE) \ + OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_OACC_TILE), 2) /* _CONDTEMP_ holding temporary with iteration count. */ #define OMP_CLAUSE__CONDTEMP__ITER(NODE) \ -- 2.36.1 ----------------- Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634 München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht München, HRB 106955