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

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |openmp

--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
The SSA_NAME does not have a definition any more but not released:
 <ssa_name 0x7ffff6e7d240
    type <pointer_type 0x7ffff6e81000
        type <record_type 0x7ffff6e76000 _Deque_base sizes-gimplified cxx-odr-p
type_5 type_6 BLK
            size <integer_cst 0x7ffff6d02408 constant 192>
            unit-size <integer_cst 0x7ffff6d023d8 constant 24>
            align:64 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type
0x7ffff6e76000 fields <function_decl 0x7ffff6e84300 __dt > context
<translation_unit_decl 0x7ffff6cee168 t45.cc>
            full-name "struct _Deque_base"
            X() X(constX&) this=(X&) n_parents=0 use_template=0
interface-unknown
            pointer_to_this <pointer_type 0x7ffff6e81000> reference_to_this
<reference_type 0x7ffff6e81540> chain <type_decl 0x7ffff6e751c8 _Deque_base>>
        unsigned DI
        size <integer_cst 0x7ffff6ce0f48 constant 64>
        unit-size <integer_cst 0x7ffff6ce0f60 constant 8>
        align:64 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type
0x7ffff6e81000>

    def_stmt
    version:1>

When openmp outlines the basic-block, it must not have released them:
  #pragma omp parallel [child fn:
_ZN12_GLOBAL__N_121morphologicalFilter1DIiLi0ELi4EEEvv._omp_fn.0 (???)]

  <bb 3> :
  vals = .DEFERRED_INIT (96, 1, 0);
  D.2608 = &vals + 0;
  _1 = D.2608 + 96;
  goto <bb 5>; [INV]

  <bb 4> :
  D.2608 = D.2608 + 24;

  <bb 5> :
  if (D.2608 != _1)
    goto <bb 4>; [INV]
  else
    goto <bb 6>; [INV]

  <bb 6> :
  vals = {CLOBBER};
  #pragma omp return


I don't see anything exactly related to ftrivial-auto-var-init really except it
adding the loop around vals.

Reply via email to