https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92385

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |compile-time-hog,
                   |                            |memory-hog
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2019-11-06
     Ever confirmed|0                           |1

--- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> ---
It's yet another case where the C++ FE should emit loops rather than
individual array element initializations.

;; Function item_array::item_array() (null)
;; enabled by -tree-original


<<cleanup_point <<< Unknown tree: expr_stmt
  *(struct
  {
    struct item a[524288];
  } &) this = {CLOBBER} >>>>>;
{
  <<cleanup_point <<< Unknown tree: expr_stmt
  (void) (((struct item_array *) this)->a = {TARGET_EXPR <D.2340, <<< Unknown
tree: aggr_init_expr
  4
  __ct_comp
  D.2340
  (struct item *) <<< Unknown tree: void_cst >>> >>>>, TARGET_EXPR <D.2350, <<<
Unknown tree: aggr_init_expr
  4
  __ct_comp
  D.2350
  (struct item *) <<< Unknown tree: void_cst >>> >>>>, TARGET_EXPR <D.2351, <<<
Unknown tree: aggr_init_expr
...
 2 million lines later
...
  D.526635
  (struct item *) <<< Unknown tree: void_cst >>> >>>>, TARGET_EXPR <D.526636,
<<< Unknown tree: aggr_init_expr
  4
  __ct_comp
  D.526636
  (struct item *) <<< Unknown tree: void_cst >>> >>>>}) >>>>>;

also probably not too intelligent individual elements either.

Reply via email to