Re: [Open64-devel] How to get data type in memory of a CODEREP
Brought to you by:
ributzka,
suneeljain
From: Fred C. <fc...@ke...> - 2003-06-27 17:45:12
|
_dtyp is the result type, corresponding to rtype in the WHIRL node. dsctyp is the descriptor type, corresponding to desc in the WHIRL node. So dsctyp is the type in memory. The dtyp and dsctyp for the symbols in phi nodes (and similarly for chi) sometimes are not accurate, because when it creates them, it has not yet seen the real occurrence of the variables (because it only appears later in the function). Because this inaccuracy is not in the real occurrence, it is not critical, because it won't affect the non-SSA final program output. -Fred Chow Du, Zhao Hui wrote: > Hi ,guys > > I am trying to get data type in memory of a CODEREP in WOPT and I > found I could not get the correct result. > In the definition of CODEREP we could find that > MTYPE _dtyp:5; // data type > MTYPE dsctyp:5; // descriptor type for various opcode > So that I have thought that _dtyp will provide the data type in memory. > When compiling util.c in gzip, I find that in PU fill_inbuf, ORC will > introduce a new symbol > aux_id=12 fixed inbuf, byte ofst is 0, byte size is 1, per-PU class > 2, global class 0, attr=global|named|not_f90_pointer|not_f90_target, > based_sym=null > The data size of the symbol should be 1. > But when debug ORC (after IVR in WOPT), there's a phi_node in the > beginning of the loop in the PU > sym12v5<cr75> <- phi(sym12v4<cr48>,sym12v4<cr48>) > I find that both _dtyp and dsctyp for the RESULT() of phi is 4, or MTYPE_I4. > Shouldn't the _dtyp of the RESULT() to be MTYPE_I1 ? > > |