[Bug fortran/90539] [10 Regression] 481.wrf slowdown by 25% on Intel Kaby with -Ofast -march=native starting with r271377
marxin at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed May 22 10:27:00 GMT 2019
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90539
--- Comment #14 from Martin Liška <marxin at gcc dot gnu.org> ---
Ok, so I isolated that to a single file and one gfc_conv_subref_array_arg call.
Problematic file is netcdf/netcdf.f90 and the gfc_conv_subref_array_arg call
happens
for:
(gdb) p *expr
$3 = {
expr_type = EXPR_VARIABLE,
ts = {
type = BT_REAL,
kind = 8,
u = {
derived = 0x0,
cl = 0x0,
pad = 0
},
interface = 0x0,
is_c_interop = 0,
is_iso_c = 0,
f90_type = BT_UNKNOWN,
deferred = false,
interop_kind = 0x0
},
rank = 1,
shape = 0x0,
symtree = 0x27d3570,
ref = 0x2b83f20,
where = {
nextc = 0x23bc358,
lb = 0x23bc230
},
base_expr = 0x0,
is_boz = 0,
is_snan = 0,
error = 0,
user_operator = 0,
mold = 0,
must_finalize = 0,
no_bounds_check = 0,
external_blas = 0,
do_not_resolve_again = 0,
do_not_warn = 0,
representation = {
length = 0,
string = 0x0
},
value = {
logical = 0,
iokind = M_READ,
integer = {{
_mp_alloc = 0,
_mp_size = 0,
_mp_d = 0x0
}},
real = {{
_mpfr_prec = 0,
_mpfr_sign = 0,
_mpfr_exp = 0,
_mpfr_d = 0x0
}},
complex = {{
re = {{
_mpfr_prec = 0,
_mpfr_sign = 0,
_mpfr_exp = 0,
_mpfr_d = 0x0
}},
im = {{
_mpfr_prec = 0,
_mpfr_sign = 0,
_mpfr_exp = 0,
_mpfr_d = 0x0
}}
}},
op = {
op = GFC_INTRINSIC_BEGIN,
uop = 0x0,
op1 = 0x0,
op2 = 0x0
},
function = {
actual = 0x0,
name = 0x0,
isym = 0x0,
esym = 0x0
},
compcall = {
actual = 0x0,
name = 0x0,
base_object = 0x0,
tbp = 0x0,
ignore_pass = 0,
assign = 0
},
character = {
length = 0,
string = 0x0
},
constructor = 0x0
},
param_list = 0x0
}
proc_name=0x155555068d20 "nf_put_vara_double"
(gdb) p *fsym
$5 = {
name = 0x1555544a2c20 "_formal_107",
module = 0x0,
declared_at = {
nextc = 0x23c86d4,
lb = 0x23c8590
},
ts = {
type = BT_REAL,
kind = 8,
u = {
derived = 0x0,
cl = 0x0,
pad = 0
},
interface = 0x0,
is_c_interop = 0,
is_iso_c = 0,
f90_type = BT_UNKNOWN,
deferred = false,
interop_kind = 0x0
},
attr = {
allocatable = 0,
dimension = 1,
codimension = 0,
external = 0,
intrinsic = 0,
optional = 0,
pointer = 0,
target = 0,
value = 0,
volatile_ = 0,
temporary = 0,
dummy = 1,
result = 0,
assign = 0,
threadprivate = 0,
not_always_present = 0,
implied_index = 0,
subref_array_pointer = 0,
proc_pointer = 0,
asynchronous = 0,
contiguous = 0,
fe_temp = 0,
automatic = 0,
class_pointer = 0,
save = SAVE_NONE,
data = 0,
is_protected = 0,
use_assoc = 0,
used_in_submodule = 0,
use_only = 0,
use_rename = 0,
imported = 0,
host_assoc = 0,
in_namelist = 0,
in_common = 0,
in_equivalence = 0,
function = 0,
subroutine = 0,
procedure = 0,
generic = 0,
generic_copy = 0,
implicit_type = 0,
untyped = 0,
is_bind_c = 0,
extension = 0,
is_class = 0,
class_ok = 0,
vtab = 0,
vtype = 0,
is_c_interop = 0,
is_iso_c = 0,
sequence = 0,
elemental = 0,
pure = 0,
recursive = 0,
unmaskable = 0,
masked = 0,
contained = 0,
mod_proc = 0,
abstract = 0,
module_procedure = 0,
public_used = 0,
implicit_pure = 0,
array_outer_dependency = 0,
noreturn = 0,
entry = 0,
entry_master = 0,
mixed_entry_master = 0,
always_explicit = 0,
artificial = 0,
referenced = 0,
is_main_program = 0,
access = ACCESS_UNKNOWN,
intent = INTENT_UNKNOWN,
flavor = FL_VARIABLE,
if_source = IFSRC_UNKNOWN,
proc = PROC_UNKNOWN,
cray_pointer = 0,
cray_pointee = 0,
alloc_comp = 0,
pointer_comp = 0,
proc_pointer_comp = 0,
private_comp = 0,
zero_comp = 0,
coarray_comp = 0,
lock_comp = 0,
event_comp = 0,
defined_assign_comp = 0,
unlimited_polymorphic = 0,
has_dtio_procs = 0,
caf_token = 0,
select_type_temporary = 0,
associate_var = 0,
pdt_kind = 0,
pdt_len = 0,
pdt_type = 0,
pdt_template = 0,
pdt_array = 0,
pdt_string = 0,
omp_udr_artificial_var = 0,
omp_declare_target = 0,
omp_declare_target_link = 0,
oacc_declare_create = 0,
oacc_declare_copyin = 0,
oacc_declare_deviceptr = 0,
oacc_declare_device_resident = 0,
oacc_declare_link = 0,
oacc_routine_lop = OACC_ROUTINE_LOP_NONE,
ext_attr = 0,
volatile_ns = 0x0,
asynchronous_ns = 0x0
},
generic = 0x0,
component_access = ACCESS_UNKNOWN,
formal = 0x0,
formal_ns = 0x0,
f2k_derived = 0x0,
param_list = 0x0,
value = 0x0,
as = 0x2c899f0,
result = 0x0,
components = 0x0,
cp_pointer = 0x0,
entry_id = 0,
hash_value = 0,
common_next = 0x0,
common_head = 0x0,
dummy_order = 0,
namelist = 0x0,
namelist_tail = 0x0,
old_symbol = 0x0,
mark = 0,
gfc_new = 0,
tlink = 0x0,
equiv_built = 0,
forall_index = 0,
fn_result_spec = 0,
resolved = 0,
abr_modproc_decl = 0,
refs = 1,
ns = 0x2424e40,
backend_decl = 0x0,
from_intmod = INTMOD_NONE,
intmod_sym_id = 0,
binding_label = 0x0,
common_block = 0x0,
assoc = 0x0,
dt_next = 0x0
More information about the Gcc-bugs
mailing list