Lines Matching defs:Def
73 // major kinds of reference nodes: defs and uses. A def node will contain
74 // the id of the first reached use, and the id of the first reached def.
75 // Each def and use will contain the id of the reaching def, and also the
76 // id of the next reached def (for def nodes) or use (for use nodes).
77 // The "next node sharing the same reaching def" is denoted as "sibling".
79 // - Def node contains: reaching def, sibling, first reached def, and first
81 // - Use node contains: reaching def and sibling.
87 // |Def |Use | |
89 // | V |Def |Def
103 // the def-def, def-use links shown above.
124 // ment, d - def, u - use).
125 // The format of a def node is:
130 // rd - reaching def,
131 // d - reached def,
139 // rd - reaching def,
142 // + - preserving def,
143 // ~ - clobbering def,
165 // - Def.
168 // - Preserving: applies only to defs. A preserving def is one that can
170 // the register associated with that def. For example, if R0 is a 32-bit
171 // register, but a def can only change the lower 16 bits, then it will
176 // by this def is unspecified. A typical example would be volatile registers
185 // have a unique reaching def: both defs of the sub-registers need to be
187 // added and it points to the extra reaching def. Both uses are marked with
239 Def = 0x0001 << 2, // 001
251 Preserving = 0x0008 << 5, // 01000, Def can keep original bits.
440 NodeId DD, DU; // Ids of the first reached def and use.
450 NodeId RD, Sib; // Ids of the reaching def and the sibling.
452 Def_struct Def;
503 return getKind() == NodeAttrs::Def;
514 return Ref.Def.DD;
517 Ref.Def.DD = D;
520 return Ref.Def.DU;
523 Ref.Def.DU = U;
727 BA.Addr->getKind() == NodeAttrs::Def;